安装失败的NUnit测试不会显示在TeamCity中

安装失败的NUnit测试不会显示在TeamCity中,nunit,teamcity,Nunit,Teamcity,我使用NUnit和TeamCity来运行测试 某些测试(并非全部)在测试类构造函数中执行操作。我将这些操作称为验证的“预操作”。因此,在一个测试类中,我有5个验证(测试)和一组预操作 我注意到,如果一组测试在预操作执行阶段失败,则TeamCity根本不会在其报告中显示这些测试(不在任何状态下) 在构建日志中,我看到类似这样的错误: SetUp Error : {test_name} + error code. 我希望TeamCity将这些测试报告为至少被忽略的测试 要比较使用TeamCity

我使用NUnit和TeamCity来运行测试

某些测试(并非全部)在测试类构造函数中执行操作。我将这些操作称为验证的“预操作”。因此,在一个测试类中,我有5个验证(测试)和一组预操作

我注意到,如果一组测试在预操作执行阶段失败,TeamCity根本不会在其报告中显示这些测试(不在任何状态下)

在构建日志中,我看到类似这样的错误:

 SetUp Error : {test_name} + error code.
我希望TeamCity将这些测试报告为至少被忽略的测试

要比较使用TeamCity运行测试与在Visual Studio中使用Visual Studio运行测试,相同故障条件的结果将导致所有测试套件失败。所有测试的失败错误都是相同的

所以我想知道的是,我的一些测试是否根本没有运行,因为如果TeamCity没有在测试结果中包含then,那么我甚至不知道有什么问题

配置:TeamCity 10.0,NUnit 3.0

命令行参数:
--result=TestResult.xml--workers=4--teamcity

更新:日志中执行的测试结果如下所示:

[13:03:48][Step 1/1] Test Run Summary
[13:03:48][Step 1/1]     Overall result: Failed
[13:03:48][Step 1/1]    Tests run: 82, Passed: 0, Errors: 82, Failures: 0, Inconclusive: 0
[13:03:48][Step 1/1]      Not run: 0, Invalid: 0, Ignored: 0, Explicit: 0, Skipped: 0
[13:03:48][Step 1/1]   Start time: 2016-09-08 09:56:33Z
[13:03:48][Step 1/1]     End time: 2016-09-08 10:03:48Z
[13:03:48][Step 1/1]     Duration: 434,948 seconds

因此,NUnit将这些测试标记为“错误”,而不是失败。但我还是希望他们在测试结果中

您的测试是错误的,因为您正在构造函数中抛出异常。因为测试夹具无法构建,所以就NUnit而言,测试并没有真正运行。导致异常的NUnit断言失败这一事实与构建对象的上下文无关

我们一直建议人们保持其构造函数非常简单,因为NUnit不能保证何时以及多久构造一次对象。在构造函数中使用断言是对这一原则的极端违反,事实上,我以前从未见过有人这样做

如果您希望在每次运行测试时都发生一些事情,而不是构建测试时发生一些事情,那么OneTimeSetUp属性就在这里。NUnit确实保证该方法何时执行。:-)

所有这些都不能确切地告诉我为什么TC不能识别错误,但我猜这是因为一旦构造函数失败,测试就永远不会真正运行。NUnit本身通过将测试报告为错误来补偿,但TC不一定会这样做