我想爲測試用例的nUnit的類別屬性的等價函數。我已經繼承了大量的C++測試用例,其中一些是單元測試,其中一些是長期運行的集成測試,我需要設置我的持續集成構建過程來忽略集成測試用例。是否有與測試用例的nunit的Category屬性相當的cppunit?
我寧願簡單地標記所有集成測試用例,並指示cppunit在CI構建過程中排除它們。
我可以忽略cppunit的一個特性,還是有其他方法可以實現嗎?
我想爲測試用例的nUnit的類別屬性的等價函數。我已經繼承了大量的C++測試用例,其中一些是單元測試,其中一些是長期運行的集成測試,我需要設置我的持續集成構建過程來忽略集成測試用例。是否有與測試用例的nunit的Category屬性相當的cppunit?
我寧願簡單地標記所有集成測試用例,並指示cppunit在CI構建過程中排除它們。
我可以忽略cppunit的一個特性,還是有其他方法可以實現嗎?
沒有本機測試類別屬性。 CppUnit比這個簡單一點。 CppUnit甚至沒有爲您的應用程序提供命令行測試運行器。您必須編寫自己的簡單main()函數來執行TestRunner。
這是規範的例子。
#include <cppunit/extensions/TestFactoryRegistry.h>
#include <cppunit/ui/text/TestRunner.h>
int main(int argc, char **argv)
{
CppUnit::TextUi::TestRunner runner;
CppUnit::TestFactoryRegistry ®istry = CppUnit::TestFactoryRegistry::getRegistry();
runner.addTest(registry.makeTest());
bool wasSuccessful = runner.run("", false);
return wasSuccessful;
}
TestSuite是TestCases的集合。 TestRunner執行一系列TestSuite。請注意,在本例中,它從TestFactoryRegistry中獲取TestSuites,您可以使用對CPPUNIT_TEST_SUITE_REGISTRATION(MyTestSuite)的宏調用來填充TestSuite。但TestCases仍然是您的測試課程。
你當然可以自己實現這些屬性,就像你用一個門面擴展任何類一樣。從TestSuite中派生你的新類。將屬性添加到您可以選擇的測試中,然後填充您的TestRunner執行「只是單元測試」或「只是集成測試」或任何您想要的。
對於這個問題,TestRunner可以根據名稱選擇要執行的測試。如果您使用ITFoo,ITBar等前綴命名所有集成測試,則可以選擇以「IT」開頭的所有測試。
有幾十種方法可以解決您的問題,但您必須自己動手。如果你可以編寫值得單元測試的代碼,那對你來說應該不是什麼大問題。 :-)