2017-03-07 77 views
0

我使用Visual Studio 2015的CppUnitTestFramework在我的C++代碼上運行一些測試,該代碼正在工作。但是,在所有測試運行之後,我想將一些結果寫入文件。我試圖通過TEST_CLASS_CLEANUP以下方法:Visual Studio本機測試:在所有測試運行後寫入文件

TEST_CLASS_CLEANUP(CleanUp) { 
    std::ofstream outFile("compare.html"); 
    outFile << "<!DOCTYPE html><html><head><meta charset=\"utf-8\"/></head><body><table>"; 

    //Write some stuff to outFile 
    ... 

    outFile << "</body></html>" << std::endl; 
    outFile.close(); 
} 

但是,沒有在任何地方創建文件「compare.html」。當我使用TEST_METHOD_CLEANUP時,它正在工作,但是在每次測試之後都會寫入,這並非意圖。那麼,我可以通過TEST_CLASS_CLEANUP以某種方式寫入文件嗎?

+0

聽起來像是你應該嘗試像TEST_CLEANUP –

+0

@ChristopherGallé就像我寫的,上課的清理方法,即TEST_CLASS_CLEANUP不工作。我也試過模塊清理TEST_MODULE_CLEANUP,這也不起作用。剩下的清理TEST_METHOD_CLEANUP工作正常,但在每次測試後運行。一個簡單的TEST_CLEANUP不存在。 – Niels

+0

你的項目中是否有名爲「CleanUp」的測試類? –

回答

0

是的,你可以。其實,你的代碼工作正常,並創建一個文件。見例如:

TEST_CLASS(Example) 
{ 
public: 
    TEST_METHOD(ExampleTest) 
    { 
     // A test 
    } 

private: 
    TEST_CLASS_CLEANUP(ExampleCleanUp) 
    { 
     std::ofstream outFile("compare.html"); 
     outFile << "<!DOCTYPE html><html><head><meta charset=\"utf-8\"/></head><body><table>"; 

     outFile << "</body></html>" << std::endl; 
     outFile.close(); 
    } 
}; 
+0

我剛剛嘗試過您的代碼例如,並將其複製到新的本機單元測試中。不幸的是,結果保持不變,我的案例中沒有出現任何文件。但是,即使在我的情況下,代碼不起作用也是很好的。不幸的是,我不知道什麼會影響文件的寫入。 – Niels

相關問題