所有测试运行后,Visual Studio本地测试:写入文件
Visual Studio Native Testing: Writing to a file after all tests have run
我使用Visual Studio 2015的CppunittestFramework在我的C 代码上运行许多测试。但是,在所有测试都运行后,我想将一些结果写入文件。我通过test_class_cleanup尝试了以下方法:
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以某种方式写入文件吗?
是的,您可以。实际上,您的代码正常工作并创建一个文件。请参阅示例:
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();
}
};
我知道这可能为时已晚,但是您的问题的答案是的,但是。
Visual Studio 2017 CE中的以下实验:
TEST_CLASS_INITIALIZE(ClassInitialize)
{
Logger::WriteMessage("In Test Dir Listing Class Initialize");
Logger::WriteMessage(std::experimental::filesystem::current_path().string().c_str());
...
}
给出以下输出:
[dd.mm.2020 00:00:14信息]在测试dir列表中初始化[dd.mm.2020 00:00:14信息]
因此,您正在调试器工作目录中初始化测试,但是清理类中的同样记录
TEST_CLASS_CLEANUP(ClassCleanup)
{
Logger::WriteMessage("In Test Dir Listing Class Cleanup");
Logger::WriteMessage(std::experimental::filesystem::current_path().string().c_str());
...
}
导致:
[dd.mm.2020 00:00:15信息]在测试dir列表中清理[dd.mm.2020 00:00:15信息]
即。班级清理的工作目录通常不是一个人可以期望的。
因此,如果要将数据写入某些特定文件,则应安排适当的完整路径规范。或将工作路径保存在课堂初始化中并在清理过程中使用。
相关文章:
- MinGw 无法从 cmake 编译测试文件
- CMake GoogleTests在我的测试文件中找不到导入的头文件
- 为多个测试文件构建可执行文件
- Centos6 gcc6:编译简单的 c++11 测试文件时,默认的 ABI 不拾取
- 为什么我们需要用Catch分别编译主测试文件
- 我想使用 CMake 生成和编译 Visual Studio projet,我需要从构建中排除单元测试文件。有没有办法做到这一点?
- 如何测试文件是否被锁定和/或只读而不打开?
- 使用 Makefile 高效编译多个测试文件
- 如何让谷歌测试在QtCreator中执行多个测试文件
- 测试文件夹可读性/可写性的正确方法
- 如何在Linux中使用Makefile一次编译一堆测试C++文件
- 试图捕获不平衡的分隔符.我需要显示与之关联的行号.遇到问题和我的测试文件
- 使用Google Test测试文件输出
- 使用 iostate 标志测试文件写入失败
- 使用 QTestLib 测试文件的打开
- Boost.Test 使用正则表达式测试文件内容
- 在gtest中,如何添加库文件到可执行的测试文件
- 从Find Max方法返回一个int值并将其打印在测试文件中
- 通过相对路径c++ cmake guest找到单元测试的外部测试文件
- OCMock 3.0.2与.mm测试文件的链接错误