我有 3 个 java 测试类。
1.ListenerTest1.java
2.ListenerTest2.java
3.ListenerMain.java
以上两个 testfixture 类即 ListenerTest1.java 和 ListenerTest2.java 都有测试方法。
此外,将 build.gradle 文件设置为:-
task automationTests(type: Test) {
systemProperty 'serviceType', System.properties['serviceType']
useTestNG {
useDefaultListeners = true
suiteXmlBuilder().suite(name: 'Testing case') {
test(name: 'ServiceUITests', annotations: 'JDK', verbose: '1') {
classes([:]) {
'class'(name: 'company.platform.ListenerMain')
}
}
}
}
}
因此,在运行我的 hudson job 时,它调用任务,即 自动化测试 并运行我的 ListenerMain 类(class)。
我需要在 ListenerMain 类文件中添加 if/else 条件,这将根据在 hudson 作业中添加的 System.property 区分运行上述两个类中的任何一个,即 ListenerTest1.java 或 ListenerTest2.java。
例如
@Listeners(value = {PreconditionListener.class})
public class ListenerMain {
private static String serviceTypeUseParameter ;
private static Logger logger = LogManager.getLogger(ListenerMain .class.getName());
@BeforeClass
//TestNg Annotation
public void setup()
{
//############# Hudson job parameter is serviceType ##########
serviceTypeUseParameter = System.getProperty("serviceType");
if (serviceTypeUseParameter.equals("ListenerTest1Method")){
// Run ListenerTest1 class
}
else{
// Run ListenerTest2 class
}
}
}
根据 if/else 条件加载类需要添加什么代码?
如果需要,我可以在 ListenerMain 类中添加 main 方法。
最佳答案
您可以在 if/else 代码中添加以下代码。并在 runClasses
内方法可以指定测试类。
Result result = JUnitCore.runClasses(ListenerTest1.class);
关于java - 如何从另一个 java 类运行测试类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40375052/