【问题标题】:How to run a BOOST test using vstest.console.exe?如何使用 vstest.console.exe 运行 BOOST 测试?
【发布时间】:2021-01-30 11:33:31
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    想通了。问题是正确的 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"。

    【讨论】:

      猜你喜欢
      • 2018-10-31
      • 1970-01-01
      • 2021-04-21
      • 2015-08-20
      • 1970-01-01
      • 2016-07-20
      • 2017-09-23
      • 1970-01-01
      相关资源
      最近更新 更多