我的src/test/
文件夹包含单元和功能测试。功能测试的类路径具有单词cucumber
,而单元测试则没有。那么,我怎样才能运行单元测试呢?
非常感谢你。
P.S。:我知道使用“包含”逻辑来选择测试很容易。例如,为了仅在我的情况下运行功能测试,我可以简单地使用这个
./gradlew test -Dtest.single=cucumber/**/
但是,我不知道如何以简单的方式排除测试。
BTW,我正在使用gradle 1.11。
答案 0 :(得分:31)
信用:这个答案的灵感来自JB Nizet的回答。它被发布是因为它更直接我的问题。
要仅运行单元测试,请创建一个如下所示的新任务:
task unitTest( type: Test ) {
exclude '**/cucumber/**'
}
这样我们有:
运行所有测试:./gradlew test
运行所有单元测试:./gradlew unitTest
运行所有功能测试:./gradlew test -Dtest.single=cucumber/**/
答案 1 :(得分:20)
The documentation解释了它,并举例说明了一切:
apply plugin: 'java' // adds 'test' task
test {
// ...
// explicitly include or exclude tests
include 'org/foo/**'
exclude 'org/boo/**'
// ...
}
答案 2 :(得分:4)
您可以根据外部系统属性将其排除。
-Dtest.profile=integration
和build.gradle
test {
if (System.properties['test.profile'] != 'integration') {
exclude '**/*integrationTests*'
}
}
答案 3 :(得分:2)
您还可以在ghci> import Data.Text (pack)
ghci> import Data.Text.Encoding
ghci> streamDecodeUtf8 (encodeUtf8 (Data.Text.pack "\xed"))
Some "\237" "" _
中定义自定义标志:
build.gradle
然后在命令行中:
test {
if (project.hasProperty('excludeTests')) {
exclude project.property('excludeTests')
}
}