我正在學習如何使用Boost測試庫,而且我似乎無法讓測試套件正常工作。在下面的代碼中,'test_case_1'失敗了,但它報告在主測試套件中,而不是'test_suite_1'。在錯誤的測試套件中檢測到提升單元測試失敗
任何人都知道我在做什麼錯了?
#define BOOST_AUTO_TEST_MAIN
#include <boost/test/auto_unit_test.hpp>
BOOST_AUTO_TEST_SUITE(test_suite_1);
BOOST_AUTO_TEST_CASE(test_case_1) {
BOOST_REQUIRE_EQUAL(1, 2);
}
BOOST_AUTO_TEST_SUITE_END();
編輯:
Ovanes的回答更讓我體會到了浴室的層次更好 - 在這種情況下test_suite_1是根套件,它在默認情況下被命名的子套件‘主測試套件’。默認日誌記錄只顯示根套件,這不是我期望的,我可以處理它:)
您可以通過定義BOOST_TEST_MODULE來設置根套件名稱 - 因此上述示例的替代版本預期的錯誤信息是:
#define BOOST_TEST_MODULE test_suite_1
#define BOOST_AUTO_TEST_MAIN
#include <boost/test/auto_unit_test.hpp>
BOOST_AUTO_TEST_CASE(test_case_1) {
BOOST_REQUIRE_EQUAL(1, 2);
}
我很高興我發現了這一點,但我在這種行爲完全採空區,砸到。由於您只能使用`BOOST_TEST_MODULE`,這是否意味着每個單元測試可執行文件基本上只有一個套件?並且所有測試失敗都將作爲此套件的成員進行報告,並且沒有子套件名稱?當然,我在這裏錯過了一些東西。編輯:格式 – 2012-07-17 16:30:47