如何 运行 被排除的单个测试
How to run a single test that is excluded
我有一个以“IT”结尾的集成测试,默认情况下这些测试被排除在外。我的 build.gradle
包含:
test {
if (!project.hasProperty('runITs')) {
exclude '**/**IT.class'
}
}
check
任务是 build
的一部分,不再是 运行 的集成测试。如果有必要,所有测试(单元+集成)都使用定义的runITs
(例如./gradlew -PrunITs=1 check
)执行。
效果很好。唯一的缺点是在没有定义 runITs
的情况下,我无法 运行 使用 --test
(由 IDE 使用)进行单一集成测试。命令失败并显示消息:未找到给定的测试包括:[**/**IT.class](排除规则)。
有什么方法(例如构建变量)如何识别 --test
的单个测试的 运行 并跳过排除?
尝试调用特定 sub-project 的测试任务。如果测试是 root try
gradle -PrunITs=1 :test --tests 'MServiceTest'
其他
gradle -PrunITs=1 :sub-prj:test --tests 'MServiceTest'
我找到了解决办法。我的 build.gradle
现在包含:
test {
if (!project.hasProperty('runITs') && filter.commandLineIncludePatterns.empty) {
exclude '**/**IT.class'
}
}
当测试 运行 和 --tests
时,过滤器中的列表 commandLineIncludePatterns
不为空并且不应用排除。
我有一个以“IT”结尾的集成测试,默认情况下这些测试被排除在外。我的 build.gradle
包含:
test {
if (!project.hasProperty('runITs')) {
exclude '**/**IT.class'
}
}
check
任务是 build
的一部分,不再是 运行 的集成测试。如果有必要,所有测试(单元+集成)都使用定义的runITs
(例如./gradlew -PrunITs=1 check
)执行。
效果很好。唯一的缺点是在没有定义 runITs
的情况下,我无法 运行 使用 --test
(由 IDE 使用)进行单一集成测试。命令失败并显示消息:未找到给定的测试包括:[**/**IT.class](排除规则)。
有什么方法(例如构建变量)如何识别 --test
的单个测试的 运行 并跳过排除?
尝试调用特定 sub-project 的测试任务。如果测试是 root try
gradle -PrunITs=1 :test --tests 'MServiceTest'
其他
gradle -PrunITs=1 :sub-prj:test --tests 'MServiceTest'
我找到了解决办法。我的 build.gradle
现在包含:
test {
if (!project.hasProperty('runITs') && filter.commandLineIncludePatterns.empty) {
exclude '**/**IT.class'
}
}
当测试 运行 和 --tests
时,过滤器中的列表 commandLineIncludePatterns
不为空并且不应用排除。