azure-devops - 在 Azure DevOps 管道生成结果页面中将开玩笑警告显示为警告
问题描述
我们有一个 Azure DevOps 管道,它使用 Azure DevOps server 2019 的自托管 Windows 代理。该管道运行我们的前端测试。为此,我们使用以下命令行来运行测试:
npm run jest -- --ci --reporters=default --reporters=jest-junit
. 然后我们使用发布测试结果任务来发布结果。
这一切都很好。但是,我们最近注意到测试中的运行时警告没有显示在任何地方。通过像这样添加 vso 格式化程序,我们在构建结果页面中显示了 linter 警告npm run nx run-many -- --target="lint" --all --skip-nx-cache=true --parallel --format=vso
:但是,jest 似乎没有任何我们可以使用的格式参数。
是否可以获取在开玩笑测试中显示的警告并将它们记录在构建的结果页面中?感谢您的帮助,如果我可以提供更多信息,请告诉我。
解决方案
因此,我最终使用以下 PowerShell 任务将 @PerryQian-MSFT 发布的内容附加到我的 jest-setup.js 文件中。
- task: PowerShell@2
displayName: Make test log warnings
inputs:
targetType: 'inline'
script: |
Add-Content -path config/jest-setup.js -value @"
import { command, log } from "azure-pipelines-logging";
const { error, warn } = console;
global.console.error = (...args) => {
error(...args);
log(command("task", "logissue", { type: "error" })(...args));
};
global.console.warn = (...args) => {
warn(...args);
log(command("task", "logissue", { type: "warning" })(...args));
};
"@
我不得不更改 GitHub 帖子中的解决方案,因为我不希望测试在遇到警告时失败,管道应该仍然成功,只是有问题。为了解决这个问题,我将azure-pipelines-logging作为依赖项。log(command("task", "logissue", { type: "warning" })(...args));
然后,每当调用警告时,我就可以使用它来登录管道。
推荐阅读
- python - 如何使用多处理读取大文件?
- python - 如何在导入包“nltk”后但在执行“nltk.downloader”之前解决在 sys.modules 中发现的 RuntimeWarning:“nltk.downloader”?
- php - 我如何验证 Laravel 中的前三个字符?
- python - Python参数错误未传递正确信息
- date - JavaFX 相同的号码?
- c++ - 如何为 UUID 定义排序?
- javascript - 编写一个名为 strLetterCount 的函数,它接受一个字符串并返回一个新字符串,其中包含每个字母及其在字符串中的计数
- reactjs - 如何在 React with MUI 中使用 useStyles() 覆盖标签
- c# - 当我向我的解决方案添加新窗口时,在 stetic (Monodevelop + C#) 上找不到“设计视图”
- r - R 警告消息中 For 循环中的复杂 If Else 语句