我有一个运行程序的测试项目(一个.exe
),并确保结果按预期发布。如何在不链接到csproj的情况下引用项目?
我想声明的是测试项目取决于构建.exe
项目,以及.exe
下降放入的$(OutDir)
(或$(OutputPath)
)的子目录。
$(OutDir)MyTests.dll
(测试项目)$(OutDir)\Product\Foo.exe
(测试项目)$(OutDir)\Product\xxx.dll
(测试项目的依赖)
这样我可以写形式的测试:
[TestClass]
[DeploymentItem("Product", "Product")]
public class RunFoo
{
[TestMethod]
public void HelpTextMatches()
{
// System.Diagnostics.Process.Start("Product\foo.exe" ...)
}
}
有没有办法声明像<ProjectReference
在我的测试.csproj
文件,这将使我能够实现这一目标?
(我不想只是有一个<Copy
任务下测试抓住了程序的输出,因为再没有什么测试项目之前强迫的MSBuild筹建方案测试。)
“ProjectReference”有什么问题?假如你的测试项目只是一个测试类,那么它对被测试项目的认识是有效的。 – KMoraz
@KMoraz:这会导致该项目的输出被声明为程序集引用,这在这里不合适。我想测试产品,因为它将被部署 - “ProjectReference”会隐藏错误,因此测试项目会部署产品所依赖的二进制文件(但产品本身不会复制)。 –