Docker 运行单元测试karma脚本后的jenkins管道不会停止
我创建了un-jenkins管道,它运行一个docker容器,其中包含nodeJs、karma和xvfb来运行单元测试。 测试成功通过,但即使在karma配置中captureTimeout:60000和singleRun:true,脚本也不会停止 我错在哪里Docker 运行单元测试karma脚本后的jenkins管道不会停止,docker,jenkins,karma-jasmine,angular-cli,jenkins-pipeline,Docker,Jenkins,Karma Jasmine,Angular Cli,Jenkins Pipeline,我创建了un-jenkins管道,它运行一个docker容器,其中包含nodeJs、karma和xvfb来运行单元测试。 测试成功通过,但即使在karma配置中captureTimeout:60000和singleRun:true,脚本也不会停止 我错在哪里 [33m05 04 2017 16:01:54.227:WARN [karma]: [39mNo captured browser, open http://localhost:9876/ [32m05 04 2017 16:01:54.2
[33m05 04 2017 16:01:54.227:WARN [karma]: [39mNo captured browser, open http://localhost:9876/
[32m05 04 2017 16:01:54.260:INFO [karma]: [39mKarma v1.3.0 server started at http://localhost:9876/
[32m05 04 2017 16:01:54.262:INFO [launcher]: [39mLaunching browser Chrome with unlimited concurrency
[32m05 04 2017 16:01:54.282:INFO [launcher]: [39mStarting browser Chrome
[32m05 04 2017 16:01:59.120:INFO [Chrome 57.0.2987 (Linux 0.0.0)]: [39mConnected on socket /#0Rk4DaJRdDHKCHNvAAAA with id 66659056
Chrome 57.0.2987 (Linux 0.0.0): Executed 0 of 2 SUCCESS (0 secs / 0 secs)
[1A[2KChrome 57.0.2987 (Linux 0.0.0): Executed 1 of 2 SUCCESS (0 secs / 0.99 secs)
[1A[2KLOG: 'MAIN'
Chrome 57.0.2987 (Linux 0.0.0): Executed 1 of 2 SUCCESS (0 secs / 0.99 secs)
[1A[2KChrome 57.0.2987 (Linux 0.0.0): Executed 2 of 2 SUCCESS (0 secs / 1.269 secs)
[1A[2KChrome 57.0.2987 (Linux 0.0.0): Executed 2 of 2 SUCCESS (1.319 secs / 1.269 secs)
管道:
业力形态:
编辑日期:2017年4月7日
没有人可以帮助我,或者可能是我不清楚,我的问题是当我运行jenkins管道“运行单元测试”步骤时,cf屏幕截图从未完成,我无法检查我的测试是否通过或不启动下一步。我需要帮助,知道如何在业力测试完成后,用命令行或其他方法停止它
我试着用karma配置captureTimeout:60000,singleRun:true实现它,但什么都没发生
我修复了这个问题,在我的Jenkins文件中,我使用命令sh'ng test'来运行测试,而不知道在后台发生了什么 所以我直接使用了因果报应命令
sh ('./node_modules/karma/bin/karma start karma.conf.js')
我假设karma在关注对开发机器有利但对CI构建不利的变化。如果您想避免更改karma配置,可以将-watch false作为参数传递给ng测试。虽然您有singleRun:true,但我不确定autoWatch:true是否具有更高的优先级 我建议您使用docker容器来执行完整的构建,而不是单个docker运行命令。 Jenkins为在docker容器中运行命令提供了一个很好的抽象:
docker.image('trion/ng-cli-karma').inside {
stage ('load npm dependencies') {
echo 'Load npm dependencies'
sh 'npm install'
}
stage ('build') {
echo "building"
sh 'npm run build'
}
stage ('unit test') {
sh 'ng test --progress false --watch false'
echo 'generate test report **/dist/test-reports/*.xml'
junit allowEmptyResults: false, testResults: '**/test-results.xml'
echo 'end test & coverage'
}
...
sh ('./node_modules/karma/bin/karma start karma.conf.js')
docker.image('trion/ng-cli-karma').inside {
stage ('load npm dependencies') {
echo 'Load npm dependencies'
sh 'npm install'
}
stage ('build') {
echo "building"
sh 'npm run build'
}
stage ('unit test') {
sh 'ng test --progress false --watch false'
echo 'generate test report **/dist/test-reports/*.xml'
junit allowEmptyResults: false, testResults: '**/test-results.xml'
echo 'end test & coverage'
}
...