繁体   English   中英

如何获得要在构建机器上构建的NUnit测试项目?

[英]How do you get an NUnit test project to build on a build machine?

我一直在努力(不是第一次)在我正在从事的项目上建立持续集成。 我们使用CruiseControl.NET,但这并不是真正的问题-大多数问题与csproj + sln文件和Visual Studio有关。 经过一番摸索之后,我设法解决了这些问题,但以为我要记录一下必须是非常常见的问题。

在启动并运行ccnet配置后,我遇到的第一个问题是编译错误:

errorCS0234: The type or namespace name 'Gui' does not exist in the namespace 'NUnit' (are you missing an assembly reference?)

解决了另一个问题后,我遇到了熟悉的(痛苦的)64 vs 32位问题:

System.BadImageFormatException: Could not load file or assembly '....' or one of its dependencies. An attempt was made to load a program with an incorrect format.

第一个问题是由Visual Studio在引用NUnit dll时添加的“提示路径”引起的。 这些路径是相对于我的本地计算机上Nunit安装位置的,并且服务器的结构不同。

如果您查看Visual Studio中的属性,您将看不到这些提示路径的任何提及。 在文本编辑器中打开相关的csproj,您会看到类似以下内容的内容:

  <HintPath>..\..\..\..\Program Files (x86)\NUnit 2.5.7\bin\net-2.0\framework\nunit.framework.dll</HintPath>

并将其替换为以下内容:

  <HintPath>$(ProgramFiles)\NUnit 2.5.7\bin\net-2.0\framework\nunit.framework.dll</HintPath>

在巡航控制中,我是根据解决方案文件构建的,没有指定直接针对的平台。 这是造成第二个问题。 要解决此问题,您可以使用Visual Studio。 打开解决方案,然后从顶部的栏中单击Build => Configuration Manager。 在主动解决方案平台中,我只有“ x86”。 从下拉列表中选择“新建”,然后选择“ AnyCpu”,然后选择从“复制设置”,并勾选“创建新项目平台”。 而已! 单击确定,关闭配置管理器,然后执行ctrl + shift + S保存所有内容(包括csproj + sln)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM