【问题标题】:Android Junit Testing FreezesAndroid Junit 测试冻结
【发布时间】:2013-03-01 19:25:59
【问题描述】:

我有一个我正在单元测试的 android 应用程序。我有 4 个测试类,每个测试类都有多种测试方法。我从一个测试套件同时运行它们。我在模拟器上遇到了一个问题,测试会在运行测试的过程中冻结。我切换到使用实际设备,问题就消失了。

快进几个星期,我在我的设备上运行测试时没有遇到同样的问题。过去几天我一直在 Google 上试图找到解决方案,但没有找到任何帮助。

问题
当我尝试运行所有测试时,测试最终会冻结。冻结是指测试本身冻结。我看到了一种解决方案,它可能是电话或日食。我重新启动了手机,更新了 eclipse 中的所有内容,包括 eclipse 本身。我尝试更改视图以查看日食视图是否不刷新,但这些都没有帮助。我还尝试使用 junit v4 库而不是 v3。

如果我单独运行测试方法,它们都会运行并通过。只有当我从测试套件中全部运行它们时,它们才会失败。

日志
我检查了日志,这是我得到的:
03-13 12:11:04.526: I/TestRunner(23175): started: testCheckShowDialogEnabled(com.package.name.MainActivityTest)

之后日志中就没有其他内容了。

在设备上
该应用程序已完成并从屏幕上删除。它没有在下一次测试开始时再次重新打开。

守则
这是我认为可能相关的代码。如果您需要更多代码,请告诉我。

public class AllTests extends TestSuite {
    public static Test suite() {
        TestSuite suite = new TestSuite();

        suite.addTestSuite(MainActivityTest.class);
        suite.addTestSuite(DatabaseHandlerTest.class);
        suite.addTestSuite(ClassOneTest.class);
        suite.addTestSuite(AnotherActivityTest.class);

        return suite;
    }
}

public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActivity> {

    public MainActivityTest() {
        super("com.package.name", MainActivity.class);
    }

    @Override
    public void setUp() throws Exception {
        super.setUp();


        mMainActivity = getActivity();
        mSolo = new Solo(getInstrumentation(), mMainActivity);
    }

    @Override
    protected void tearDown() throws Exception {
        super.tearDown();

        mMainActivity = null;
    }
    // all the test methods
}

我所有的测试类都以类似的方式实现setup() 和tearDown()。

有人知道为什么我的测试一直冻结吗?非常感谢任何帮助或建议。

【问题讨论】:

  • 我在我的 tearDown() 中尝试了这个,现在 Eclipse 中的 JUnit 视图似乎仍然在第二种测试方法中被冻结。但是现在在大约一秒钟的时间里,我得到了一个开始测试,完成了测试,并通过了我所有测试方法的测试日志条目。
  • 如果测试真的能跑得那么快,我可以相信日志,但我从来没有让这些测试跑得那么快。完成它们通常需要几分钟时间

标签: android junit test-suite


【解决方案1】:

@smk 为我指明了寻找解决方案的方向。我刚刚将我的 tearDown() 更改为:

@Override
protected void tearDown() throws Exception {
    mSolo.finishOpenActivities();
    super.tearDown();
}

现在效果很好!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-07
    • 2012-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多