5
他,大家好!我的測試由jenkins從一般軟件包運行。我可以在spock中設置測試包,它將首先運行,如果在此包中不會通過任何測試,則應該跳過其他測試。我見過這樣的例子:Spock按包定單測試
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
@RunWith(Suite.class)
@Suite.SuiteClasses({TestJunit1.class, TestJunit2.class})
public class JunitTestSuite {
}
但也許斯波克有解決方案,我可以用包,而不是每個類的枚舉,因爲我有在其他許多包許多測試類。 後還我用轉輪
import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;
public class TestRunner {
public static void main(String[] args) {
Result result = JUnitCore.runClasses(JunitTestSuite.class);
for (Failure failure : result.getFailures()) {
System.out.println(failure.toString());
}
System.out.println(result.wasSuccessful());
}
}
主線程犯規停止。我不知道爲什麼。 我想要做這樣的事情:
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
@RunWith(Suite.class)
@Suite.SuiteClasses({com.example.test.*.class})
public class JunitTestSuiteFirst {
}
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
@RunWith(Suite.class)
@Suite.SuiteClasses({com.example.otherTest.*.class, com.example.otherTests2.*.class})
public class JunitTestSuiteFirst {
}
import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;
public class TestRunner {
public static void main(String[] args) {
Result result = JUnitCore.runClasses(JunitTestSuite.class);
for (Failure failure : result.getFailures()) {
System.out.println(failure.toString());
}
if(result.wasSuccessful()){
JUnitCore.runClasses(JunitTestSuite.class);
}else {
System.out.println("Build failed");
}
}
}
或者,也許存在這個任務更簡單的解決方案。謝謝。
我所有的測試都位於一個包中。是的,經過一番嘗試。我在gradle文件中添加了開始輪流。我在一個任務中爲包添加了排除功能,並且僅在其他任務中包含了所需的程序包。並在這些任務之間設置dependsOn –