Xtr*_*der 5 java testng gradle
我有以下虚拟测试课程
package my.test;
import org.testng.annotations.*;
public class NgScenario {
public static void trace(String msg) {
System.err.println(msg);
}
@BeforeClass
public void init() {
trace("-- NgScenario");
}
@AfterClass
public void shutdown() {
trace("-- NgScenario");
}
@Test(dependsOnMethods = {"step2"})
public void step1() throws Exception {
trace("-- step1");
}
@Test
public void step2() throws Exception {
trace("-- step2");
}
@Test(dependsOnMethods = {"step2"})
public void step3() throws Exception {
trace("-- step3");
}
}
Run Code Online (Sandbox Code Playgroud)
和 build.gradle
apply plugin: 'java'
repositories {
mavenLocal()
mavenCentral()
jcenter()
}
dependencies {
compile "org.testng:testng:6.9.10"
}
test {
useTestNG()
scanForTestClasses = false
include '**/*'
beforeTest { descriptor ->
logger.lifecycle("Gradle running test: ${descriptor}")
}
}
Run Code Online (Sandbox Code Playgroud)
当我执行简单的命令时gradle test-一切正常,并且输出如下(注意:step2故意依赖于step1检查顺序是否正确):
Gradle running test: Test method step2(my.test.NgScenario)
Gradle running test: Test method step1(my.test.NgScenario)
Gradle running test: Test method step3(my.test.NgScenario)
Run Code Online (Sandbox Code Playgroud)
现在,假设我在场景中有100个方法,并且只想在我的IDE中对方法的单个分支进行测试调试-我运行命令gradle test --tests my.test.NgScenario.step1并收到此错误
No tests found for given includes: [my.test.NgScenario.step1]
Run Code Online (Sandbox Code Playgroud)
step1具有dependsOnMethods在其注解。相同的测试命令,无需 dependsOnMethods运行OK :gradle test --tests my.test.NgScenario.step2。
所以问题是- 我在做什么/期望错了?
我既想使用测试场景,又想在IDE中启动单个测试子树。
最重要的是-能够在不依赖于其的任务的情况下执行“ step1”会很好(假设“父级”步骤为“ clean + setup”-调试单个测试并不需要所有先决条件) -地点)。
作为主题外,可以推荐另一个可以集成到gradle构建中的框架。
小智 2
尝试这个:
gradle :clean -Dtest.single=Name_of_your_test_here test
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2431 次 |
| 最近记录: |