2015-05-21 40 views
1

我有一个.NET解决方案,其中包含主要的ASP MVC项目,然后是一个添加了NUnit以进行单元测试的类库项目。TeamCity不会使用NUnit类库构建

当我建立TeamCity的解决方案的主要项目的基础不错,但随后当测试项目建立我得到这些错误

error BC30002: Type 'TestFixture' is not defined. 
error BC30002: Type 'Test' is not defined. 
error BC30389: 'System.Diagnostics.Assert' is not accessible in this context because it is 'Friend'. 

我认为它无法找到NUnit.dll或东西,但该DLL位于解决方案软件包文件夹中。如果是这样的话,我已经尝试过首先进行软件包恢复,但它仍然保持原样。

更新 好的,只是为了测试它,我添加了Moq到项目,看看它是否会拿起参考。它的确运行良好,当我尝试使用NUnit函数时,它似乎只是问题。我可以禁止它建设,但NUnit测试肯定不会在团队城市中被挑选出来?

谢谢!

+0

如果你打开构建服务器上的项目是什么?参考文献是否存在? –

+0

Visual Studio没有安装在服务器上,它只是使用构建工具 编辑:忘记了你可以在记事本中打开它们,是的参考是有DLL的包文件夹 –

+2

你是如何做nuget包恢复。这是使用.csproj中的标志,还是使用NuGet安装程序生成运行器进行显式构建步骤以从解决方案中恢复软件包?您是否可以通过查看TeamCity中的Packages选项卡来确认包已下载? –

回答

0

终于解决了这个问题,这是我自己愚蠢的错误。感谢DevOps建议通过MSBuild日志,它帮助我追踪了这个问题。

由于添加测试项目的开发机器有一个忽略所有DLL的全局忽略文件,所以实际的DLL没有检入到源代码控制。所以我认为它在那里,但它只是.xml文件,我误解了它。

无论如何,它现在建立并运行测试。

感谢大家的帮助