试图运行琐碎的Android JUnit测试。获得:“测试运行失败:没有测试结果”我缺少什么?

时间:2010-08-11 21:07:47

标签: java android junit

我之前从未使用过JUnit,现在我正试图在Android项目上进行设置。

我的测试项目相当复杂,包括一些JNI,但我的测试项目目前完全是微不足道的。我在网上找到了很多关于如何制作测试项目的例子(看起来完全不同),但似乎无论我遵循哪一个,我都会得到相同的结果。

这是我的JUnit项目代码:


package com.mycompany.myproject.test;

import android.test.AndroidTestCase;

public class SimpleTestCaseExample extends AndroidTestCase {
    public void test_testOne() {
        fail("Just Always Fail");
    }
}

当我跑步时,我在Logcat中看到以下内容:

stdout    INSTRUMENTATION_STATUS: numtests=2
stdout    INSTRUMENTATION_STATUS: test=test_testOne
stdout    INSTRUMENTATION_STATUS_CODE: 0
stdout    INSTRUMENTATION_STATUS: id=InstrumentationTestRunner
stdout    INSTRUMENTATION_STATUS: current=2
stdout    INSTRUMENTATION_STATUS: class=com.mycompany.myproject.test.SimpleTestCaseExample
stdout    INSTRUMENTATION_STATUS: stream=
stdout    INSTRUMENTATION_STATUS: numtests=2
stdout    INSTRUMENTATION_STATUS: test=testAndroidTestCaseSetupProperly
stdout    INSTRUMENTATION_STATUS_CODE: 1
stdout    INSTRUMENTATION_STATUS: id=InstrumentationTestRunner
stdout    INSTRUMENTATION_STATUS: current=2
stdout    INSTRUMENTATION_STATUS: class=com.mycompany.myproject.test.SimpleTestCaseExample
stdout    INSTRUMENTATION_STATUS: stream=.
stdout    INSTRUMENTATION_STATUS: numtests=2
stdout    INSTRUMENTATION_STATUS: test=testAndroidTestCaseSetupProperly
stdout    INSTRUMENTATION_STATUS_CODE: 0
stdout    INSTRUMENTATION_RESULT: stream=
stdout    Test results for InstrumentationTestRunner=..
stdout    Time: 0.07
stdout    OK (2 tests)
stdout    INSTRUMENTATION_CODE: -1

但是,我在控制台中得到以下内容:

Launching instrumentation android.test.InstrumentationTestRunner on device emulator-5554
Collecting test information
Test run failed: No test results

我尝试了各种不同的东西,弄乱了基本的TestCase类,或者TestSuite类,或者其他各种选项。我试图去寻找最简单的例子,因为我还在努力学习它是如何工作的。

无论我尝试什么,我都会看到这个错误。

任何建议都将不胜感激!

如果我遗漏了一些重要信息,请告诉我,我会更新。

1 个答案:

答案 0 :(得分:17)

好的,我明白了。

任何人都没有机会猜到问题是什么。我不确定是什么让我尝试的。

我有一些JNI代码可以将错误消息输出到stdout。该代码没有在我的测试项目中运行,但我使用相同的模拟器。出于这个原因,我有一个/data/local.prop将stdout重定向到logcat。

事实证明,测试工具期望JUnit测试的输出出现在stdout上。当stdout的logcat重定向打开时,stdout上没有任何结果,并且测试系统没有获得输出,因此无法运行。

我删除了stdout的local.prop重定向到logcat,并重新启动了模拟器,现在它可以正常工作。

我从未想过测试系统依赖于阅读stdout本身。