2010-08-11 94 views
4

我从来没有使用JUnit,现在我试图在Android项目上进行设置。试图运行微不足道的Android JUnit测试。获取:“测试运行失败:没有测试结果”我错过了什么?

我的项目测试相当复杂,包括一些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类,或者var其他选择。我试图去做最微不足道的例子,因为我仍然在试着学习它是如何工作的。

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

任何建议,将不胜感激!

如果我遗漏了一些重要信息,请让我知道,我会更新。

回答

17

好的,我想通了。

而且任何人都不会猜到问题出在哪里。我不知道是什么让我尝试它。

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

事实证明,测试工具期望JUnit测试的输出显示在标准输出上。当stdout的logcat重定向打开时,stdout上没有结果,测试系统也没有得到输出,因此无法运行。

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

我从来没有想到测试系统依赖于读取stdout本身。

+0

感谢您的回答,永远不会想到这个 – 2013-06-11 14:58:34

+0

您是如何做到的?我删除了stdout的local.prop重定向到logcat,并重新启动了模拟器,现在它工作。 – user358591 2016-08-25 19:51:17

相关问题