【问题标题】:How to stop powershell script after failed dotnet command?dotnet 命令失败后如何停止 powershell 脚本?
【发布时间】:2020-03-03 22:18:46
【问题描述】:

当从 powershell 脚本执行时,我发现 dotnet 命令的行为不可靠。

在 powershell 脚本中执行:

dotnet build "$slnPath"

忽略任何编译错误并继续执行脚本。我必须检查 $lastexitcode 看看是否有任何错误。

另一方面,命令:

dotnet test "$slnPath"

如果有任何失败的单元测试,立即终止 powershell 脚本的执行。

这是正常行为吗?我是否需要根据 dotnet 命令的参数编写不同的错误处理?

【问题讨论】:

  • 在 powershell 脚本中使用throw 1 怎么样?
  • 我能做到,是的。但是为什么我必须为“dotnet build”而不是“dotnet test”这样做? dotnet restore、dotnet publish 等呢?我觉得奇怪的是,该命令根据参数以不同的方式处理错误

标签: powershell .net-core


【解决方案1】:

dotnet test 命令启动为项目指定的测试运行器控制台应用程序。测试运行程序执行为单元测试框架(例如,MSTest、NUnit 或 xUnit)定义的测试并报告每个测试的成功或失败。如果所有测试都成功,则测试运行器返回 0 作为退出代码;否则,如果任何测试失败,则返回 1。 但是dotnet build building 需要 project.assets.json 文件,该文件列出了您的应用程序的依赖项。该文件是在执行 dotnet restore 时创建的。如果没有资产文件,工具将无法解析引用程序集,从而导致错误。 您可以在此地址 tool_description

阅读每个命令的作用(并且可能会找到一些控制它们的键)

【讨论】:

    猜你喜欢
    • 2021-08-16
    • 1970-01-01
    • 1970-01-01
    • 2014-01-27
    • 2021-12-24
    • 2016-12-04
    • 2019-09-20
    • 1970-01-01
    • 2020-12-31
    相关资源
    最近更新 更多