首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >詹金斯、vstest.console.exe和PowerShell

詹金斯、vstest.console.exe和PowerShell
EN

Stack Overflow用户
提问于 2017-12-01 20:13:58
回答 1查看 1.1K关注 0票数 0

问题

这是一个双重的问题。

我正在处理一个作业,它运行在目标项目中找到的单元测试。我有两个变体,我正在工作,我试图让其中一个正常工作。

变式A

我正在使用VsTestRunner插件,但是,我不知道如何捕获它的输入,以便将这些信息放入外部日志中。

变式B

我已经放弃了VsTestRunner插件,正在通过PowerShell使用vstest.console.exe,但发现了以下问题:

如果任何测试失败,我如何终止脚本并失败构建?

我试着查看上面插件的代码,但它是用Java编写的(我对Java的经验有限),我无法找到它是如何终止代码的。我也找不到这方面的任何资源。vstest.console.exe的文档在其选项变量之外没有任何关于用例的内容。我也尝试过查看vstest.console.exe.config文件,希望有一些我可以使用的东西.但那也是一场大萧条。

问题

变体A:有可能捕获Jenkins插件的输出吗?如果是这样的话,是怎么做的?

变体B:如果任何测试失败,我如何终止脚本并失败Jenkins构建?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-06 13:59:27

向@4c74356b41呼喊,因为他把我推到了正确的方向。

在重新检查代码之后,我发现变体B的第一个问题是,我把$LastExitCode的检查放在了错误的地方。这至少让我得到了我想要的失败。一旦我有了这一点,就需要利用以下几个方面的变化:

代码语言:javascript
复制
Try {
    & $vsTestConsole $testFile /any /necessary /options

    If ($LastExitCode -ne 0) {
        throw "TestFailure"
    }
}
Catch {
    # Custom error specifically for failed tests
    If ($_.Exception.Message -ieq 'TestFailure') {
        Write-Host "One or more tests failed, ending action"
        # Terminate PS Script with an Exit Code of 1 so that Jenkins Fails the build
        # Exiting in this manner also prevents the addition of unnecessary fluff
        # This way you can fully customize the error response
        [Environment]::Exit(1) 
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47600846

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档