在我們的項目中,我們使用QtTestLib進行單元測試。原因是整個項目只要有可能就已經使用Qt,並且它是一個GUI應用程序,所以我們希望能夠測試GUI界面。如何在使用單個測試項目的同時將所有QtTestLib單元測試結果合併到單個文件中?
我們的項目是由MSVC編譯的,所以我們不希望每個測試都有一個單獨的項目文件,因爲它會混淆解決方案。因此我們爲所有測試創建了一個單獨的項目。所有測試都應該在CIS(持續集成)上實現自動化,因此我們嘗試使用一些XSLT轉換通過XML格式的輸出文件將測試插入到Hudson中。
但是看起來測試的輸出有問題。如果你使用一個main()的所有測試和發射只是CMD行參數傳遞給每一個測試:
#include "MyFirstTest.h"
#include "MySecondTest.h"
int main(int argc, char **argv)
{
int result = 0;
MyFirstTest test1;
result |= QTest::qExec(&test1, argc, argv);
MySecondTest test2;
result |= QTest::qExec(&test2, argc, argv);
return result;
}
那麼你會得到一個結果文件rewrited多次。所以如果你想用輸出文件(例如xml)稍微自動化一下,你只會得到最後一個結果。所有其他將被覆蓋。
我們已經嘗試過這種方法,它不能讓您使用像Hudson這樣的一些持續集成系統。所以我的問題是:是否有機會在一個輸出文件中附加結果?當然,我們可以使用一些解決方法,比如通過QTest :: qExec()運行每個測試,並使用修改的參數將結果寫入單獨的文件中,但似乎並不是最好的方法。理想情況下,我想讓一個結果文件與CIS一起使用。
是Qt4.8,還沒有完全測試。想要顯示原理。謝謝,已修復上述答案。 – muenalan 2016-03-23 00:44:14