运行 来自 powershell 的 Appveyor Jest 测试
Running Jest tests on Appveyor from powershell
我正在尝试 运行 我在 Appveyor 上的 Jest 测试。我正在为 React 应用程序(使用 create-react-app)使用 asp.net 核心模板。当我 运行 本地测试(使用 npm run test
)测试 运行 正常时,我看到 PASS src\App.test.js
和 运行-down 已经通过的测试。
然而,在 Appveyor 中,控制台抛出一个错误,导致我的构建失败。错误信息是 PASS src\App.test.js
。因此,似乎 运行 以某种方式发出错误,尽管它似乎实际上正在传递。我查了一下 $LASTEXITCODE
是 -1
App.Test.js
it('Runs tests', () => {
expect(true).toBeTruthy();
});
Appveyor.yml
test_script:
- ps: .\build\appveyor\js-tests.ps1
.\build\appveyor\js-tests.ps1
($env:CI = $true) -and (npm run test)
我正在设置 CI 环境,因为这会阻止测试使用 "watch"。 js-tests 脚本做了一些其他的事情,包括排序文件位置和一些日志记录等,但我认为这不相关,因为消息作为通过的测试返回。
Npm 有时会将正常输出写入 stdErr
,AppVeyor 上的自定义 PowerShell 主机将其视为错误。解决方案是 运行 在 CMD 中进行那些测试。所以用 - cmd:
前缀将它们包装成 .cmd
文件和 运行。
@ilyaf 的答案的替代方法是使用 jest-silent-reporter
,它在测试通过时不提供输出。这与 ilyaf 的回答的原因相同,因为 npm 将输出写入 stderr
,不写任何内容即可解决。
安装:
npm install jest-silent-reporter --save-dev
在你的 package.json
"scripts":{<br>
"test": "react-scripts test --env=jsdom --reporters jest-silent-reporter",
},
注意我在这里定义了记者。
我还建议在调用 npm test
后添加一个日志,这样您的日志就可以确认该东西有 运行。
我正在尝试 运行 我在 Appveyor 上的 Jest 测试。我正在为 React 应用程序(使用 create-react-app)使用 asp.net 核心模板。当我 运行 本地测试(使用 npm run test
)测试 运行 正常时,我看到 PASS src\App.test.js
和 运行-down 已经通过的测试。
然而,在 Appveyor 中,控制台抛出一个错误,导致我的构建失败。错误信息是 PASS src\App.test.js
。因此,似乎 运行 以某种方式发出错误,尽管它似乎实际上正在传递。我查了一下 $LASTEXITCODE
是 -1
App.Test.js
it('Runs tests', () => {
expect(true).toBeTruthy();
});
Appveyor.yml
test_script:
- ps: .\build\appveyor\js-tests.ps1
.\build\appveyor\js-tests.ps1
($env:CI = $true) -and (npm run test)
我正在设置 CI 环境,因为这会阻止测试使用 "watch"。 js-tests 脚本做了一些其他的事情,包括排序文件位置和一些日志记录等,但我认为这不相关,因为消息作为通过的测试返回。
Npm 有时会将正常输出写入 stdErr
,AppVeyor 上的自定义 PowerShell 主机将其视为错误。解决方案是 运行 在 CMD 中进行那些测试。所以用 - cmd:
前缀将它们包装成 .cmd
文件和 运行。
@ilyaf 的答案的替代方法是使用 jest-silent-reporter
,它在测试通过时不提供输出。这与 ilyaf 的回答的原因相同,因为 npm 将输出写入 stderr
,不写任何内容即可解决。
安装:
npm install jest-silent-reporter --save-dev
在你的 package.json
"scripts":{<br>
"test": "react-scripts test --env=jsdom --reporters jest-silent-reporter",
},
注意我在这里定义了记者。
我还建议在调用 npm test
后添加一个日志,这样您的日志就可以确认该东西有 运行。