好吧,我们面临一个奇怪的问题,JetBrains TeamCity在我们的主项目中引发了单元测试,其中少数图书馆项目的测试经常失败.显然,它不是在读取配置文件(来自app.config并且很好地存储在项目中 - > bin - > debug - > projectName.dll.config).
关于什么可能是真正的问题的提示或提示将受到高度赞赏.
Gas*_*agy 22
我有同样的问题,浪费了几个小时来弄清问题是什么.
在我们的例子中,NUnit插件被配置为运行以下测试:
**\*Tests.dll
Run Code Online (Sandbox Code Playgroud)
虽然听起来没问题,但事实证明这个模式不仅匹配bin\Debug文件夹中的MyTests.dll,还匹配obj\Debug\MyTests.dll.obj文件夹在内部用于编译,不包含配置文件.
最后解决方案是将插件配置更改为
**\bin\Debug\*Tests.dll
Run Code Online (Sandbox Code Playgroud)
实际上我们使用系统变量进行构建配置,因此我们没有硬编码的"Debug".当工作空间也用于调试/发布版本并且您没有指定完全清理时,使用bin*也可能是危险的.
您可能想知道为什么我没有意识到测试计数不匹配(实际上它是加倍的,因为它们是从bin运行一次而从obj运行一次),但这是典型的:虽然一切都是绿色的,但您并不关心计数.当我们根据配置引入第一个测试时,我们只有一次失败(因为bin中的那个失败了),所以复制并不突出.
DMa*_*yer 16
除了Gaspar Nagy接受的答案之外,检查你的项目是否有多个测试dll,其中一个是引用另一个.
这会导致引用的dll运行两次,而另一个dll的文件夹中的副本没有正确的app.config条目.正确的解决方法是从其他测试项目中删除任何和所有引用.
TeamCity(v6.5.4)有自己的NUnit Test Runner,它和NUnit GUI测试运行器之间似乎存在不一致(2.5.10).NUnit GUI Test Runner遵循长期惯例,期望配置文件名的格式为.config.你可以通过查看Project - > Edit ...在NUnit中看到这个.
另一方面,TeamCity正在寻找app.config.
您可以选择:
| 归档时间: |
|
| 查看次数: |
3922 次 |
| 最近记录: |