我的测试类有3个运行三个测试用例的API(测试* ** ())。 当我以JUnit测试用例运行项目时,如何停止执行这3个测试用例中的一个或多个? 基本上,如何有选择地运行同一文件中存在的测试用例? {将它们放在一个单独的类中并不是真正的解决方案! :)}
RC
答案 0 :(得分:4)
如果您正在使用Eclipse并且只想运行单个测试方法而不是整个套件或整个测试类,则只需右键单击method-name并选择“Run as ..” - > “Android JUnit测试”
答案 1 :(得分:2)
要使用JUnit选择性跳过测试用例,您可以在不想运行的测试方法之上添加@Ignore注释。
答案 2 :(得分:2)
您也可以从命令行执行此操作:
adb shell am instrument -e class com.android.demo.app.tests.FunctionTests#testCamera com.android.demo.app.tests / android.test.InstrumentationTestRunner
在此示例中,您在FunctionTests类中仅运行测试方法'testCamera'。您可以通过-e参数添加多个值。
答案 3 :(得分:0)
由于JUnit 3中没有@Ignore注释,我必须找出一种解决方法,忽略我的测试套件中长时间运行的活动/检测测试用例,以便能够运行单元测试:
public class FastTestSuite extends TestSuite {
public static Test suite() {
// get the list of all the tests using the default testSuiteBuilder
TestSuiteBuilder b = new TestSuiteBuilder(FastTestSuite.class);
b.includePackages("com.your.package.name");
TestSuite allTest = b.build();
// select the tests that are NOT subclassing InstrumentationTestCase
TestSuite selectedTests = new TestSuite();
for (Test test : Collections.list(allTest.tests())) {
if (test instanceof TestSuite) {
TestSuite suite = (TestSuite) test;
String classname = suite.getName();
try {
Class<?> clazz = Class.forName(classname);
if (!InstrumentationTestCase.class.isAssignableFrom(clazz)) {
selectedTests.addTest(test);
}
} catch (Exception e) {
continue;
}
}
}
return selectedTests;
}
}
只需将此测试套件作为Android JUnit测试运行。