如何使用vstest.console.exe运行BOOST测试?

时间:2020-10-15 23:07:45

标签: c++ boost vstest vstest.console.exe boost.test

我正在使用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测试适配器已安装。

1 个答案:

答案 0 :(得分:0)

弄清楚了。问题是正确的TestAdapter路径。我已经安装了Boost.Test适配器(如果没有,则可以从VS Installer进行安装)。适配器位于我的计算机上的C:\ Program Files(x86)\ Microsoft Visual Studio \ 2019 \ Enterprise \ Common7 \ IDE \ Extensions下的文件夹中,即使我给出了路径,vstest.console.exe也能够检测和执行测试根目录,如/ TestAdapterPath:“ C:\ Program Files(x86)\ Microsoft Visual Studio \ 2019 \ Enterprise”。