npm test没有检测到jenkins中的新测试文件更改

时间:2017-10-28 05:52:40

标签: reactjs jenkins jenkins-pipeline jestjs

Jenkins / jest和CI,

我已经使用create-react-app创建了一个反应APP,我使用JEST进行测试,我在创建的app.test.js文件中做了一些新的更改,并致力于git-hub-用jenkins连接它 - 当我在本地机器上运行npm test,测试运行良好,它们都通过了.. 但是,当我运行jenkins管道脚本时,它会说:

No tests found related to files changed since last commit.
Press a to run all tests, or run Jest with --watchAll.

Watch Usage
› Press a to run all tests.
› Press p to filter by a filename regex pattern.
› Press q to quit watch mode.
› Press Enter to trigger a test run.

我已经尝试更改app.test.js - 创建了一个新文件提交更改,然后在jenkins中创建了一个新管道并再次尝试(我也尝试过这些讨论:https://github.com/facebookincubator/create-react-app/issues/930)但我仍然得到了上面的错误:我的管道脚本如下所示:

   node{
        stage "CI"    
        git 'https://github.com/NaveenDK/mentalshortcuts.git' 
        bat "npm install"  
        stage " Unit testing" 
        bat "npm test" 
    }
        def notify(status){
        emailext (
          to: "dd@dd.com",
          subject: "${status}: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]'",
          body: """<p>${status}: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]':</p>
            <p>Check console output at <a href='${env.BUILD_URL}'>${env.JOB_NAME} [${env.BUILD_NUMBER}]</a></p>""",
        )

    }

    node {
        notify("Deploy to staging?")
    }
    input 'Deploy to Staging?'


    node {
        bat "npm run-script build"
    }

任何帮助任何链接任何东西都会很棒!

3 个答案:

答案 0 :(得分:3)

由于Jenkins在Windows上运行,测试没有在jenkins上运行,Windows也不支持glob,即src / ** / *。js。

当项目是在安装在Linux操作系统上的Jenkins构建时,没有遇到此问题!

答案 1 :(得分:1)

我也面临着同样的问题。如Naveen所述,Windows不支持glob,即src / ** / *。js。 这就是在Jenkins配置中将标签更改为Linux的原因。在此处查看预览。 Jenkins configuration

然后在构建部分中,将以下行添加为shell命令:

npm install
npm run build
CI=true npm test

始终首先运行npm install。它将安装所有软件包。 然后运行npm run build来构建应用 最后,请确保写入CI=true npm test。它只会运行一次测试用例。如果您改写npm test,则它将运行测试并永远进入监视模式。

我希望这会有所帮助。

答案 2 :(得分:0)

我在本地计算机上遇到这样的问题,

"test": "jest --watchAll"