在 Azure DevOps 管道构建结果页面中将笑话警告显示为警告
Display jest warning as a warning in the Azure DevOps pipeline build results page
我们有一个 Azure DevOps 管道,它使用自托管 Windows 代理和 Azure DevOps 服务器 2019。管道 运行 是我们的前端测试。为此,我们使用以下命令行来 运行 测试:
npm run jest -- --ci --reporters=default --reporters=jest-junit
。然后我们使用publish test results任务来发布结果。
一切正常。但是,我们最近注意到测试中的 运行time 警告没有在任何地方显示。通过像这样添加 vso 格式化程序,我们在构建结果页面中显示了我们的 linter 警告:npm run nx run-many -- --target="lint" --all --skip-nx-cache=true --parallel --format=vso
。但是,jest 似乎没有任何我们可以使用的格式参数。
是否可以将玩笑测试中显示的警告记录在构建的结果页面中?感谢您的帮助,如果我可以提供更多信息,请告诉我。
所以我最终使用以下 PowerShell 任务将 @PerryQian-MSFT posted 的版本附加到我的 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 post 的解决方案,因为我不希望测试在遇到警告时失败,管道应该仍然成功,只是有问题。为了解决这个问题,我将 azure-pipelines-logging 作为依赖项包含在内。然后,每当调用警告时,我就可以使用 log(command("task", "logissue", { type: "warning" })(...args));
登录管道。
我们有一个 Azure DevOps 管道,它使用自托管 Windows 代理和 Azure DevOps 服务器 2019。管道 运行 是我们的前端测试。为此,我们使用以下命令行来 运行 测试:
npm run jest -- --ci --reporters=default --reporters=jest-junit
。然后我们使用publish test results任务来发布结果。
一切正常。但是,我们最近注意到测试中的 运行time 警告没有在任何地方显示。通过像这样添加 vso 格式化程序,我们在构建结果页面中显示了我们的 linter 警告:npm run nx run-many -- --target="lint" --all --skip-nx-cache=true --parallel --format=vso
。但是,jest 似乎没有任何我们可以使用的格式参数。
是否可以将玩笑测试中显示的警告记录在构建的结果页面中?感谢您的帮助,如果我可以提供更多信息,请告诉我。
所以我最终使用以下 PowerShell 任务将 @PerryQian-MSFT posted 的版本附加到我的 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 post 的解决方案,因为我不希望测试在遇到警告时失败,管道应该仍然成功,只是有问题。为了解决这个问题,我将 azure-pipelines-logging 作为依赖项包含在内。然后,每当调用警告时,我就可以使用 log(command("task", "logissue", { type: "warning" })(...args));
登录管道。