问题
My project looks like this:
├───module1-test-cases
│ └───src
│ └───test
│ └───groovy
│ └───specs
│ └───module1test
└───module2-test-cases
└───src
└───test
└───groovy
└───specs
└───module2test
There is a lot different modules, each module has its own build.gradle file, so i can run tests for separate modules
Example of build.gradle
dependencies{
compile("org.codehaus.groovy:groovy-all:2.3.3")
compile project(":core")
compile("commons-codec:commons-codec:1.10")
testCompile("junit:junit:4.11")
testCompile project(":module2-test-cases")
}
test{
exclude '**/smth/**'
}
I want include tests from other module so when i run gradle test task it runs all tests from current module and from module i want.
回答1:
If this is a multi-project, running test on the root will run all tests in all of the modules.
If you want to run module1 tests always when runing module2 tests you can depend on the test task.
in module1 build.gradle
test.dependsOn(':module2:test')
this is going to run module2 test task before running module1 test task and if you run the root test task is not going to run them twice.
also, you can put dependsOn inside your task.
test{
dependsOn ':othermodule:test'
exclude '**/smth/**'
}
Gradle will take care for running the test classes, you dont need to say which classes you want to run. The test discovery (depending on your project structure and sourceSets) will do it for you.
来源:https://stackoverflow.com/questions/45754005/include-tests-from-other-module