[ 
https://issues.apache.org/jira/browse/SUREFIRE-2189?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Robert Važan updated SUREFIRE-2189:
-----------------------------------
    Description: 
There are sometimes reasons to put JUnit tests under src/main/java next to 
production code. Surefire cannot detect these tests and runs only tests under 
src/test/java.

I tried to set testClassesDirectory to target/classes. That causes surefire to 
run tests under src/main/java, but then tests under src/test/java are ignored. 
Changing testClassesDirectory also causes weird module loading exceptions in a 
bigger project with more dependencies.

If you are curious why anyone would put tests in production code, here are my 
reasons:
 # I want to run all tests in the background after the app starts in dev 
environment. Since the tests rarely fail, this lets me shorten edit-test-run 
cycle into edit-run cycle.
 # I want to visually annotate app UI that has associated tests.
 # I want to run tests in production environment as a sanity check.
 # I want to check compatibility between the app and its environment. This 
could be done with ordinary code, but structuring it as JUnit tests is 
convenient and results in clean code.

  was:
There are sometimes reasons to put JUnit tests under src/main/java next to 
production code. Surefire cannot detect these tests and runs only tests under 
src/test/java.

I tried to set testClassesDirectory to target/classes. That causes surefire to 
run tests under src/main/java, but then tests under src/test/java are ignored. 
Changing testClassesDirectory also causes weird module loading exceptions in a 
bigger project with more dependencies.

If you are curious why anyone would put test in production code, here are my 
reasons:
 # I want to run all tests in the background after the app starts in dev 
environment. Since the tests rarely fail, this lets me shorten edit-test-run 
cycle into edit-run cycle.
 # I want to visually annotate app UI that has associated tests.
 # I want to run tests in production environment as a sanity check.
 # I want to check compatibility between the app and its environment. This 
could be done with ordinary code, but structuring it as JUnit tests is 
convenient and results in clean code.


> Tests in src/main/java are not detected
> ---------------------------------------
>
>                 Key: SUREFIRE-2189
>                 URL: https://issues.apache.org/jira/browse/SUREFIRE-2189
>             Project: Maven Surefire
>          Issue Type: Bug
>          Components: JUnit 5.x support, Maven Surefire Plugin
>    Affects Versions: 3.1.2
>         Environment: Java 17, with or without JPMS
>            Reporter: Robert Važan
>            Priority: Major
>
> There are sometimes reasons to put JUnit tests under src/main/java next to 
> production code. Surefire cannot detect these tests and runs only tests under 
> src/test/java.
> I tried to set testClassesDirectory to target/classes. That causes surefire 
> to run tests under src/main/java, but then tests under src/test/java are 
> ignored. Changing testClassesDirectory also causes weird module loading 
> exceptions in a bigger project with more dependencies.
> If you are curious why anyone would put tests in production code, here are my 
> reasons:
>  # I want to run all tests in the background after the app starts in dev 
> environment. Since the tests rarely fail, this lets me shorten edit-test-run 
> cycle into edit-run cycle.
>  # I want to visually annotate app UI that has associated tests.
>  # I want to run tests in production environment as a sanity check.
>  # I want to check compatibility between the app and its environment. This 
> could be done with ordinary code, but structuring it as JUnit tests is 
> convenient and results in clean code.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to