2010-08-11 96 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

相關問題