2017-03-14 80 views
0

我正嘗試從Eclipse的C++代碼運行單元測試。我的Eclipse是Mars.2 Release(4.5.2)。我最初下載了Java Developer的版本,但我已經安裝了C/C++插件。我寫了一個簡單的課程,然後爲該課程進行了升壓單元測試。我可以在Eclipse和命令行上編譯代碼以獲取可執行文件。如果我運行在命令行可執行文件,我得到這個輸出Eclipse中的Boost testrunner無法生成有效的XML

Running 1 test case...

*** No errors detected

到目前爲止好。

現在,如果我嘗試在Eclipse內部運行,則出現錯誤。起初,我的測試似乎沒有運行。在「C/C++單元」選項卡中,我在屏幕右側出現一個紅色條,沒有任何信息我應該看到單個測試結果,並在小文本中顯示「XML解析錯誤:文件過早結束」消息在標籤行下方。通過停止調試器,我能夠看到我是known bug的受害者。基本上,Eclipse和boost testrunner之間存在一些不兼容問題,其中一種是針對格式指定XML和另一種xml(不同的情況)。我想這項工作,各地在討論中提到有關該鏈接的bug:

As a workaround you can add following arguments in the unittests' run configuration:

--output_format=XML --log_level=all --report_level=no --

Eclipse's test runner appends it's arguments to these. Arguments after -- are passed on to your test script and ignored by Boost.Test.

隨着到位,我還是有問題,但是這取決於我是否與調試或無法運行的問題是不同的。如果不進行調試,結果與上述相同。通過調試,我可以在「C/C++單元」選項卡的左側獲得有關我的測試的信息 - 注意到它已經運行並通過了,但仍然顯示紅色條表示失敗。在這種情況下的小文本說:「XML解析錯誤:內容不允許在尾部。」

上面提到的錯誤似乎是2歲左右,雖然討論最近一個月的活動就像上個月一樣。我想還有其他解決方法嗎?社區似乎可能在兩年的時間裏進行測試!

我嘗試通過幫助 - >檢查更新來更新Eclipse。這並沒有改善我的情況。我懷疑其他信息可能有用,但我不確定要提供什麼。我會觀看評論並更新如果/我可以在哪裏。

回答

0

不情願地,我升級到了Eclipse的Neon.2版本。正如我的問題中所述,潛在的錯誤仍然存​​在,但解決方法在該版本中有效。複製下來,從問題的完整性:

As a workaround you can add following arguments in the unittests' run configuration:

--output_format=XML --log_level=all --report_level=no --

Eclipse's test runner appends it's arguments to these. Arguments after -- are passed on to your test script and ignored by Boost.Test.

本來不錯,如果這個工作在火星,因爲升級以及是有點麻煩 - 尤其是與多個開發語言的支持 - 但至少我可以移動上。在任何情況下,可能都會在某個時候升級。