我正在尝试弄清楚如何使我的 JUnits 测试按照特定顺序运行,并在其中一个测试失败时停止所有测试。下面我只包含了一些简单的操作栏项目测试。我基本上想确保的是,当我通过命令行运行构建/测试时,如果这些测试之一失败,我希望测试停止。有什么建议吗?
public void testPreconditions() {
assertNotNull(instrumentation);
assertNotNull(mWeb);
assertNotNull(mActivity);
}
protected void setUp() throws Exception {
super.setUp();
instrumentation = getInstrumentation();
mActivity = getActivity();
setActivityInitialTouchMode(false);
mWeb = (WebView) mActivity
.findViewById(com.jaisonbrooks.webview.R.id.webview_main);
mMockWebViewClient = new MockWebViewClient();
mWeb.setWebViewClient(mMockWebViewClient);
mSettings = mWeb.getSettings();
}
public void testThatButtonReloadWorks() {
final View view = mActivity
.findViewById(com.jaisonbrooks.webview.R.id.menu_refresh);
mActivity.runOnUiThread(new Runnable() {
@Override
public void run() {
view.requestFocus();
view.callOnClick();
}
});
}
public void testThatButtonForwardWorks() {
final View view = mActivity
.findViewById(com.jaisonbrooks.webview.R.id.menu_forward);
mActivity.runOnUiThread(new Runnable() {
@Override
public void run() {
view.requestFocus();
view.callOnClick();
}
});
}
public void testThatButtonBackWorks() {
final View view = mActivity
.findViewById(com.jaisonbrooks.webview.R.id.menu_back);
mActivity.runOnUiThread(new Runnable() {
@Override
public void run() {
view.requestFocus();
view.callOnClick();
}
});
}
最佳答案
如果您使用 JUnit 进行集成测试,则可以在方法名称前添加 _1、_2 等前缀:
public void _1_testThatButton()...
public void _2_testSomethingSecond()...
我想你可以调用 System.exit() 而不是抛出异常,但是如果你的测试花费的时间太长,这对于将来添加更多测试来说可能是一个坏兆头(添加更多测试可能会阻止你运行他们)。
如果您使用的是 ant,您可以尝试以下操作:How to make junit testing to stop after first failing test
关于java - 如果 JUnit 测试失败则停止测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15481034/