I understand from the previous answers on this site that, for Maven builds:
src/main/java
will be deployed to production whereas src/test/java
will not be.src/main/java
contains the main application whereas src/test/java
will contain code to test the main appNow my question is, when writing a test framework, which approach is better/worse:
src/main/java
?src/main/java
?Somehow getting stuck on visualizing this properly -
Approach 1 seems to be correct as a test framework will be the main purpose of the build hence that will be the main app.
But then somehow I cannot imagine a test framework being deployed to production.
Approach 2 seems to be correct, but then if the main purpose is to write a test framework then what will go inside src/main/java
? Will that be empty or non-existing for my test framework app?
Any suggestions on this would be helpful.
I think you're going astray with
- src/main/java will be deployed to production whereas src/test/java will not be.
I would rephrase it as
- src/main/java contains the code that consumers of the module will use (it is the purpose of your module)
src/main/java
(This assumes that you build the testing framework as a separate module)
If you need real life examples, you don't need to look any further than JUnit
(the legendary testing framework)
Prefer to work with TestNG
? The code for TestNG is in a submodule "core", but even then: