YATestEnvironment

YATestEnvironment is a mixed Clojure and Java test-engineering project. It brings together reflection utilities, generated test-data pipelines, function spying and mocking, annotation helpers, and early code-generation experiments for Java/Clojure test automation.

You can use the project as a library or as a research/workbench codebase. Some areas are mature enough for automated tests, while others are intentionally marked as foundations or experiments.

Status Legend

What It Provides

Available

In Progress

Experimental

Project Layout

Requirements

Build and Test

Run the Clojure test suite:

lein test

Run the combined alias for Clojure tests, Java test compilation, Codox, and Javadoc generation:

lein all-tests

Build source and javadoc classifiers through the configured Leiningen tasks:

lein jar

Artifact Test-Data Player

The artifact Player lives under:

io.github.hglabplh_tech.test.suite.datagen.artifact.player

Example:

(require '[io.github.hglabplh_tech.test.suite.datagen.artifact.player :as player])

(player/run!
 {:defaults {:seed 42}
  :storage {:type :file
            :config {:base-dir "target/generated-test-artifacts"}}
  :jobs [{:format :txt
          :count 2
          :hierarchy {:project "atlas"
                      :feature "document-import"
                      :subfeature "plain-text"}}
         {:format :relational
          :count 1
          :hierarchy {:project "customer-service"
                      :class "CustomerRepository"
                      :method "findActiveCustomers"}}]})

A sample EDN configuration is available at:

src/test/resources/testdatagen/generator.edn

Generated Analysis Pipeline

The generated test-data pipeline can analyze Clojure namespaces and Java classes, generate parameter samples, render payloads, and persist the result to SQLite:

(require '[io.github.hglabplh_tech.test.suite.datagen.pipeline :as pipeline])

(pipeline/analyze-files
 {:namespaces ['some.project.ns]
  :java-classes ["java.lang.String"]
  :db-path "target/test-data/generated-test-data.sqlite"})

Java method execution isn't automatic in this pipeline yet because it needs a concrete instance or a static invocation target.

Documentation

License

YATestEnvironment is licensed under the MIT License.