【问题标题】:Running BOOST unit tests from Visual Studio 2010从 Visual Studio 2010 运行 BOOST 单元测试
【发布时间】:2012-12-18 14:25:47
【问题描述】:

我刚刚开始使用QuantLib 项目。定义了很多 BOOST 单元测试,因此问题是:是否有一种简单的方法可以从 Visual Studio 有选择地运行这些测试(并查看结果)?

到目前为止,我只在 .Net 语言中使用过单元测试,如果您使用 MsTest,您可以使用内置的测试运行程序,也可以使用一些附加组件(我使用 Resharper 和 TestDriven.NET)进行其他测试构架。在那里你可以选择你运行的测试,你可以在附加的调试器的情况下运行它们(不幸的是,这有时很有用)。非托管 C++ 中是否有类似的 BOOST 测试插件?

【问题讨论】:

  • 您可以像普通可执行文件一样运行和调试 Boost::test 应用程序。此外,我还发现将测试作为自定义后期构建步骤运行很有用(结果很好地显示在 VS 的输出窗口中)。
  • @AlexandreC.,我认为他们确实将其设置为构建后步骤。我可以只运行选定的测试(即我目前正在处理的测试)吗?

标签: c++ unit-testing boost-test


【解决方案1】:

是的,你可以!

如果您的 boost 单元测试项目定义正确,那么您可以通过单击从 VS10 调试器运行整个测试项目

right click on project --> Debug --> Start new instance

这将在 VS 框架内运行测试,这将为您提供所有调试器的好东西。

要运行特定的测试套件/用例,只需在

下编辑项目命令行参数
right click on project --> Properties --> General --> Debugging

并根据其他答案中的链接添加参数

【讨论】:

    【解决方案2】:

    您可以通过命令行运行任何测试用例或测试套件。 running tests by name

    它甚至允许使用通配符。

    【讨论】:

    • 不错。是否有任何用于 VS 的 GUI 插件来自动化该过程?
    • 不,只是 VS 板载项目属性对话框。只需将 $(TargetPath) 添加为自定义构建后事件,您将被指向输出窗口(和错误列表)中的失败测试。如果您不想运行所有测试,则必须命名测试/套件。通过良好的命名,您可以通过通配符运行多个您自己的套件。
    【解决方案3】:

    ReSharper C++ 支持 Boost 测试的发现和选择性运行/调试(使用 Boost 1.59 及更高版本)。

    【讨论】:

      【解决方案4】:

      我正在使用 Boost 单元测试适配器。它是免费的,并且输出非常好。它还可以列出单个测试消耗的时间,您可以开始单个测试和一组测试。

      你可以在这里下载:

      https://visualstudiogallery.msdn.microsoft.com/5f4ae1bd-b769-410e-8238-fb30beda987f?SRC=VSIDE

      【讨论】:

        猜你喜欢
        • 2012-10-18
        • 1970-01-01
        • 2011-01-29
        • 1970-01-01
        • 2013-01-20
        • 1970-01-01
        • 1970-01-01
        • 2011-12-06
        相关资源
        最近更新 更多