TeamCity NUnitTestRunner与Mono 5.4.1崩溃

时间:2017-12-01 11:29:57

标签: mono nunit teamcity zsh

我想知道为什么我的NUnit测试在30秒后突然成功终止,而他们通常需要至少20分钟。然后我查看了构建日志,发现在将构建代理上的单声道版本升级到v 5.4.1后,测试运行器崩溃,退出代码为134。

经过一些研究后,我发现了以下内容: - 测试运行器在使用mono 4.8.1(我们已安装)时也可以工作,但测试代码不能用它编译 - Ì也尝试手动启动erunner:/Library/Frameworks/Mono.framework/Versions/5.4.1/bin/mono -v /Applications/TeamCity/buildAgent/plugins/dotnetPlugin/bin/JetBrains.BuildServer.NUnitLauncher.exe这给了我以下错误:[1] 3461 abort /Library/Frameworks/Mono.framework/Versions/5.4.1/bin/mono -v 3461每次重试时都会发生变化。 - 根据this thread,退出代码134表示程序崩溃。

由于错误输出,我不确定,是崩溃的TeamCity测试运行器,崩溃的单声道还是使单声道崩溃的TeamCity。

任何帮助表示赞赏:)

2 个答案:

答案 0 :(得分:1)

我终于弄明白了。显然,Mono 5.4.1缺少Mono 5.2及更早版本附带的重要NUnit2组件。为了使测试再次起作用,我不得不添加#include <stdio.h> void main(){ int s_array[] = { 5, 7, 13 }; int array[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }; int i, Bcount, m, counter = 1, j = 4; //i, Bcount and m are loop counters //counter will count number of repeated elements //j is the number of elements in s_array + 1 for( i = 0; i <= 15; i++ ){ if( s_array[0] == array[i] ){ // does the first element exist? for( Bcount = 1; Bcount < j; Bcount++ ){ //checking the rest for( m = i; m < 15; m++){ if( s_array[Bcount] == array[m] ){ counter++; i = m; break; } } } } if( j == counter ){ printf( "B is a sub-sequence of A.\n" ); break; } else{ printf( "B is not a sub-sequence of A.\n" ); break; } } } NuGet包(不是NUnit.Console,因为它缺少必需的扩展名)并更新TeamCity构建步骤以使用NUnit.ConsoleRunner,如所述{{ 3}}

答案 1 :(得分:0)

对于其他可能遇到的问题,我通过将NUnit构建步骤从NUNit 2.6.3更改为NUnit 3.10来解决。我没有更改任何代码/包,仅更改了TC配置。