我试图修改以下使用JUnit的代码,以使用TestNG。
公共类AutotestShellRunner {
static Class<?> autotestClass;
static org.junit.runner.Result junitResult; ( I replaced that with org.testng.ITestResult )
public static void main(final String[] args) {
int rc;
if (args.length != 2) {
System.err.println("Usage: AutotestShellRunnerDrive <TEST_SCENARIO_CLASS_NAME> <TEST_CASE>");
System.exit(-1);
}
final String testsuite = args[0];
final String testcase = args[1];
try {
autotestClass = Class.forName(testsuite);
} catch (final ClassNotFoundException e) {t
e.printStackTrace();
throw new RuntimeException("class" + testsuite + " is not found ", e);
}
junitResult = (new JUnitCore()).run(Request.method(autotestClass, testcase)); //Now from what i saw i can use instead of JUnitCore I use TestNG
The problem is that TestNG.run() is not recieving any arguments that I need to pass such as auttestClass and testcase
Does anyone have any idea?
Thanks,
Nir
答案 0 :(得分:2)
使用TestNG的编程API here is the documentation。
答案 1 :(得分:1)
以下情况有所帮助,但仍然无法仅在课程中运行特定测试
import org.testng.ITestResult;
import org.testng.TestListenerAdapter;
import org.testng.TestNG;
import java.util.Arrays;
import java.util.List;
/**
* Created with IntelliJ IDEA. User: nir Date: 1/30/13 Time: 4:46 PM To change
* this template use File | Settings | File Templates.
*/
public class AutoTestNGShellRunner {
static Class<?> autotestClass;
public static void main(final String[] args) {
int rc;
if (args.length != 2) {
System.err
.println("Usage: AutoTestNGShellRunner <TEST_SCENARIO_CLASS_NAME> <TEST_CASE>");
System.exit(-1);
}
final String testsuite = args[0];
final String testcase = args[1];
try {
autotestClass = Class.forName(testsuite);
} catch (final ClassNotFoundException e) {
e.printStackTrace();
throw new RuntimeException("class" + testsuite + " is not found ",
e);
}
TestListenerAdapter tla = new TestListenerAdapter();
TestNG testng = new TestNG();
testng.setTestClasses(new Class[] { autotestClass });
testng.setTestNames(Arrays.asList(testcase));
testng.addListener(tla);
testng.run();
tla.getPassedTests();
List<ITestResult> failedTestsResults = tla.getFailedTests();
List<ITestResult> successTestsResults = tla.getPassedTests();
final int failureCount = failedTestsResults.size();
if (failureCount == 0) {
System.out
.println(String.format("Test case %s passed", testcase));
rc = 0;
} else {
System.out
.println(String.format("Test case %s failed", testcase));
rc = -1;
}
System.exit(rc);
}
}