【问题标题】:Automatic running of unit tests on build在构建时自动运行单元测试
【发布时间】:2011-03-29 08:43:33
【问题描述】:

我很想知道是否有一种方法可以让 Visual Studio 在我构建它时运行与给定程序集相对应的单元测试。

给定一个包含如下结构项目的解决方案:

Assembly1

Assembly1.Tests 

Assembly2 

Assembly2.Tests

有没有办法让Assembly2.Tests 中的单元测试在Assembly2 构建时运行?

那太棒了。

我使用的是 Visual Studio 2008 标准版。

【问题讨论】:

    标签: .net visual-studio unit-testing nunit build-automation


    【解决方案1】:

    您可以使用 nUnit 控制台实用程序将测试作为单个项目的构建后事件运行。

    您调用 nunit-console.exe 并提供包含测试作为参数的程序集。

    "C:\Program Files\NUnit 2.5.7\bin\net-2.0\nunit-console.exe" "PathToTestAssembly.dll"

    您可以在 GUI 中运行测试:

    "C:\Program Files\NUnit 2.5.7\bin\net-2.0\nunit.exe" "PathToTestAssembly.dll" /run

    编辑:

    删除了关于测试程序集项目的构建后事件的部分。

    【讨论】:

    • 我还不能尝试这个,但如果你是对的,这是一个非常有用且易于设置的罕见案例。我一会儿再打你……
    • 抱歉,您的警告(关于在何处放置构建后事件)是否适用于您的两种选择,还是仅适用于后者?
    • 非常有帮助,谢谢!我还建议将 NUnit bin 目录添加到您的路径中,这样您就不必在升级 NUnit 后在每个项目的构建事件中更改它。 (不知道为什么 NUnit 在它的安装目录中指定它的整个版本,而它是你要添加到路径中的那种程序)。
    • 另外,如果你得到一个退出代码 -100,检查你的程序集和 nunit 之间的架构不匹配;您可能需要改用 nunit-console-x86.exe。 (在它起作用之前我必须这样做。)
    • 最后一个提示:确保将“运行构建后事件”下拉菜单设置为“当构建更新项目输出时”。否则,即使没有触及任何代码,NUnit 也会运行每个构建。
    猜你喜欢
    • 1970-01-01
    • 2015-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-22
    • 1970-01-01
    • 2012-11-28
    • 1970-01-01
    相关资源
    最近更新 更多