我正在使用 BOOST 测试来测试我的 C++ 代码。测试通常如下所示,并且测试项目构建为 exe。为了收集代码覆盖率信息,我希望能够使用 vstest.console.exe 运行我的测试,这样我就可以尝试使用它的 /Enablecodecoverage 选项。
#include <boost/test/unit_test.hpp>
... other includes ...
class TestContext {...}
BOOST_AUTO_TEST_SUITE(MyTests);
BOOST_FIXTURE_TEST_CASE(SomeTest, TestContext)
{
// test code
}
BOOST_AUTO_TEST_SUITE_END()
我一直遇到“.exe 中没有可用的测试。确保测试发现器和执行器已注册并且平台和框架版本设置正确,然后重试。” 在这一点上我一无所知。
使用--diagnostic选项运行时,我在生成的文件中看到了这一点:
“C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\Extensions\TestPlatform TpTrace 警告:0 : 13924, 3, 2020/10/15, 14:33:27.926, 1817417335033, testhost。 exe,TestPluginDiscoverer:无法从文件“C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\Extensions\TestPlatform\Extensions\Microsoft.VisualStudio.Coverage.Interop.dll”加载扩展。跳过测试此文件的扩展扫描。错误:System.BadImageFormatException:无法加载文件或程序集“Microsoft.VisualStudio.Coverage.Interop”或其依赖项之一。尝试加载格式不正确的程序。文件名: 'Microsoft.VisualStudio.Coverage.Interop'"
我机器上的 Visual Studio 安装程序确认 Boost.Test 测试适配器已安装。