2017-08-07 32 views
0

方案如何使视觉工作室在线失败构建时,Visual Studio的测试步骤并没有发现任何测试

  • Visual Studio中建立在线的定义。
  • 使用Visual Studio测试 - 测试Assemblies步骤在特定的dll中运行测试。
  • 在这个DLL中的测试更像是构建步骤(高度定制的建设者),比测试。
  • 的测试步骤有“出错时继续”设置为false,因为我需要当建设者之一失败,失败。这是按预期工作的。当测试步骤失败时,构建失败。

由于测试运行者的变化,目前没有发现测试,因为dll中的测试框架与构建中使用的测试运行适配器不匹配。 (我知道如何解决这个问题,但这不是问题。)

问题是,这只会在日志中产生一条关于没有发现测试的信息消息,并且警告说没有发布测试结果,使构建目前(表面上)成功。假想我想摆脱。

我需要做什么才能使“未发现测试”失败的构建?

我特地到VSTS的TestRunner配置有.runsettings文件(https://msdn.microsoft.com/en-us/library/jj635153.aspx),但没有看到任何选项来获得这种行为?

回答

1

Visual Studio Test任务只是运行测试,并且如果任何测试失败将会使构建失败。如果由于缺少测试而导致构建失败,Microsoft Premier Services创建的任务称为Build Quality Checks(在我写这篇文章时这是免费的)。此任务允许您在构建版本运行时执行各种规则。如果您将最小代码覆盖率设置为10%,那么如果没有找到测试,它将会使构建失败。

此外,您可以直接自己的任务或脚本来实现相同的目标。

1

您可以添加Visual Studio的测试任务后Powershell的任务。在PowerShell任务中:

  • 通过Timeline REST API获取以前的构建任务的详细信息。
  • 然后通过名称,如VsTest - testAssemblies搜索Visual Studio的测试任务。
  • 检查是否为message值的参数是no tests discovered(或No results found to publish等)问题的一部分。如果有这样的值,请在PowerShell任务中添加命令exit 1以使构建失败。

为Visual Studio测试任务的输出示例显示如下消息No results found to publish

{ 
    "id": "29b3a87c-3c5b-473f-9ab5-85eff906250e", 
    "parentId": "299295b6-d397-492c-958e-094ec90630f8", 
    "type": "Task", 
    "name": "VsTest - testAssemblies", 
    "startTime": "2017-08-08T07:37:16.18Z", 
    "finishTime": "2017-08-08T07:37:23Z", 
    "currentOperation": null, 
    "percentComplete": null, 
    "state": "completed", 
    "result": "succeeded", 
    "resultCode": null, 
    "changeId": 13, 
    "lastModified": "0001-01-01T00:00:00", 
    "workerName": "name", 
    "order": 6, 
    "details": null, 
    "errorCount": 0, 
    "warningCount": 2, 
    "url": null, 
    "log": null, 
    "task": { 
    "id": "ef087383-ee5e-42c7-9a53-ab56c98420f9", 
    "name": "VSTest", 
    "version": "2.0.70" 
    }, 
    "issues": [ 
    { 
     "type": "warning", 
     "category": "General", 
     "message": "", 
     "data": { 
     "type": "warning", 
     "code": "002003" 
     } 
    }, 
    { 
     "type": "warning", 
     "category": "General", 
     "message": "No results found to publish.", 
     "data": { 
     "type": "warning" 
     } 
    } 
    ] 
} 
相关问题