2017-03-07 76 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

相关问题