Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker 运行单元测试karma脚本后的jenkins管道不会停止_Docker_Jenkins_Karma Jasmine_Angular Cli_Jenkins Pipeline - Fatal编程技术网

Docker 运行单元测试karma脚本后的jenkins管道不会停止

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

我创建了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.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'
        }
   ...