我有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作业时,它会调用任务,即 automationTests 并运行我的ListenerMain类。 我需要在ListenerMain类文件中添加if / else条件,该文件将根据在hudson作业中添加的System.property来区分运行上述两个类中的任何一个,即ListenerTest1.java或ListenerTest2.java。
E.g
@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方法。
答案 0 :(得分:0)
您可以在if / else代码中添加以下代码。在runClasses
方法中,您可以指定测试类。
Result result = JUnitCore.runClasses(ListenerTest1.class);
答案 1 :(得分:0)
TestNG有两个选项:
您的注释变换器将测试条件,然后覆盖@Test注释以添加属性" enabled = false"如果条件不满意。