Azure devops Visual Studio测试任务随机失败,没有错误消息,退出代码1从进程返回:node.exe

Azure devops Visual Studio测试任务随机失败,没有错误消息,退出代码1从进程返回:node.exe,azure-devops,azure-pipelines,Azure Devops,Azure Pipelines,这个问题困扰了我们的工程团队一年多,我们无法在解决方案上取得任何进展。这与我们的经历惊人地相似 我们有几个管道使用“VisualStudio测试”任务从单个程序集运行一组NUnit测试。项目中有1400-1500个单元测试,需要通过NuGet任务(安装NUnit3TestAdapter)部署NUnit测试适配器。此测试部件是使用以下设置生成的: MSBuild体系结构=x86 平台=任何CPU 配置=发布 强名称签名 跨多个管道,此步骤随机但始终提前结束,没有错误消息或跟踪进程结束的原因。运

这个问题困扰了我们的工程团队一年多,我们无法在解决方案上取得任何进展。这与我们的经历惊人地相似

我们有几个管道使用“VisualStudio测试”任务从单个程序集运行一组NUnit测试。项目中有1400-1500个单元测试,需要通过NuGet任务(安装NUnit3TestAdapter)部署NUnit测试适配器。此测试部件是使用以下设置生成的:

  • MSBuild体系结构=x86
  • 平台=任何CPU
  • 配置=发布
  • 强名称签名
跨多个管道,此步骤随机但始终提前结束,没有错误消息或跟踪进程结束的原因。运行拉请求的后续构建通常会导致成功,但偶尔会导致另一次失败。在这种情况下,我们创造了一个“脆弱的构建”,在这里,给定相同的精确代码输入,构建可能失败,然后通过

这是我们从管道收到的唯一错误消息:

##[错误]从进程返回的退出代码1:文件名“redact\externals\node\bin\node.exe”,参数“redact\u work\u tasks\VSTest\u ef087383-ee5e-42c7-9a53-ab56c98420f9\2.170.1\runvstest.js”。
完成:集成测试

这些测试是我们的“集成测试”,执行许多设置步骤来创建系统的功能版本,包括通过Kestrel创建web服务器来托管我们的API、连接到构建服务器上运行的(localdb)以恢复数据库.bak文件、应用数据库项目(dacpac)以及连接到Redis(也在生成服务器上本地安装)

我们正在努力确定下一步的步骤,所以我正在联系社区,看看是否有其他人遭受过这个问题的困扰,是否有关于如何调试这个问题的想法,或者甚至是一个解决方案

编辑日期:2020-11-10

昨天,我将管道变量
system.debug
设置为true,这是在我们的一个不稳定构建过程中捕获的输出

##[error\]Exit code 1 returned from process: file name 'E:\\servername\\externals\\node\\bin\\node.exe', arguments '"E:\\servername\\\_work\\\_tasks\\VSTest\_ef087383-ee5e-42c7-9a53-ab56c98420f9\\2.170.1\\runvstest.js"'.

##[debug\]Microsoft.VisualStudio.Services.Agent.Util.ProcessExitCodeException: Exit code 1 returned from process: file name 'E:\\servername\\externals\\node\\bin\\node.exe', arguments '"E:\\servername\\\_work\\\_tasks\\VSTest\_ef087383-ee5e-42c7-9a53-ab56c98420f9\\2.170.1\\runvstest.js"'.

  at Microsoft.VisualStudio.Services.Agent.Util.ProcessInvoker.ExecuteAsync(String workingDirectory, String fileName, String arguments, IDictionary\`2 environment, Boolean requireExitCodeZero, Encoding outputEncoding, Boolean killProcessOnCancel, InputQueue\`1 redirectStandardIn, Boolean inheritConsoleHandler, Boolean keepStandardInOpen, Boolean highPriorityProcess, CancellationToken cancellationToken)

  at Microsoft.VisualStudio.Services.Agent.ProcessInvokerWrapper.ExecuteAsync(String workingDirectory, String fileName, String arguments, IDictionary\`2 environment, Boolean requireExitCodeZero, Encoding outputEncoding, Boolean killProcessOnCancel, InputQueue\`1 redirectStandardIn, Boolean inheritConsoleHandler, Boolean keepStandardInOpen, Boolean highPriorityProcess, CancellationToken cancellationToken)

  at Microsoft.VisualStudio.Services.Agent.Worker.Handlers.DefaultStepHost.ExecuteAsync(String workingDirectory, String fileName, String arguments, IDictionary\`2 environment, Boolean requireExitCodeZero, Encoding outputEncoding, Boolean killProcessOnCancel, Boolean inheritConsoleHandler, CancellationToken cancellationToken)

  at Microsoft.VisualStudio.Services.Agent.Worker.Handlers.NodeHandler.RunAsync()

  at Microsoft.VisualStudio.Services.Agent.Worker.TaskRunner.RunAsync()

  at Microsoft.VisualStudio.Services.Agent.Worker.StepsRunner.RunStepAsync(IStep step, CancellationToken jobCancellationToken)

从错误消息中,仍然很难找到此问题的具体原因。错误消息表明vstest任务存在一些问题。您似乎正在使用自托管代理,对吗?您可以尝试删除文件夹
vstest\u ef087383-ee5e-42c7-9a53-ab56c98420f9
,并检查它是否可以对另一个文件夹进行一些更改另一方面,您可以尝试设置变量
system.debug=true
以获取调试日志,这样您就可以检查是否有更多错误消息。也请共享vstest任务定义。@KevinLu MSFT请查看我的编辑。我从
system.debug
添加了额外的消息信息。在过去几天中,我已经多次测试了vstest任务,但我没有ill无法重现该问题。虽然它是调试日志,但它仍然不包含更多错误信息。请检查agnet上的节点版本,好吗?我的节点版本是10.16。您可以尝试更新节点版本,并检查它是否可以进行更改。代理本身已安装节点12。该任务与节点捆绑在一起从今天起,我们放弃了VS测试任务,转而直接调用powershell.exe和nunit3-console.exe。