簡體   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