2010-08-13 61 views
22

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

给出一个包含结构化的这样的项目的解决方案:

Assembly1 

Assembly1.Tests 

Assembly2 

Assembly2.Tests 

有没有一种方法,我可以得到的单元测试中Assembly2.Tests每当Assembly2被建成运行?

这将是惊人的。

我正在使用Visual Studio 2008标准版。

回答

18

您可以使用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”/运行

编辑:

删除有关职位的部分生成测试的事件装配项目。

+0

我现在还不能尝试,但如果你是对的,这是一件非常有用的事情,很容易设置。我会打你一会儿... – David 2010-08-13 09:26:03

+0

对不起,你的警告(关于在哪里把后构建事件)适用于你的替代品,或只有后者? – David 2010-08-13 09:27:36

+0

只有后者作为$(TargetPath)变量引用该项目的输出程序集。因此,如果您在主装配(正在测试中)的构建中使用后一个构建后事件,则它不适用于nunit。 – fletcher 2010-08-13 09:34:33