私は3つのJavaテストクラスを持っています。 2つのtestfixtureクラス以上 1. ListenerTest1.java 2. ListenerTest2.java 3. ListenerMain.java別のJavaクラスからテストクラスを実行するには
は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')
}
}
}
}
}
だから、それは、automationTestsすなわちタスクを呼び出して、私のListenerMainクラスを実行します。 上記の2つのクラスのいずれか、つまりListenerTest1.javaまたはListenerTest2.javaを実行するために、hudsonジョブに追加されたSystem.propertyに基づいて、ListenerMainクラスファイルのif/else条件を区別する必要があります。
例えば
@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条件ごとにクラスをロードするために追加する必要がどのようなコード
? 必要に応じて、mainメソッドをListenerMainクラスに追加できます。
これを参照してくださいhttp://junit.sourceforge.net/javadoc/org/junit/runner/JUnitCore.html#runClasses(java.lang.Class ...) – Jobin
ListenerTest1とListenerTest2を共有できますか?彼らはどのインタフェースを実装していますか? – juherr
どちらのクラスでもインタフェースが使用されていません。 TestNgアノテーションを使用するテストケース(テストmtthods)で構成される単純なTestFixtureクラスです。 –