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

IT技术 reactjs jenkins jenkins-pipeline jestjs
2021-05-09 01:16:36

jenkins/开玩笑和 CI ,

我已经使用 create-react-app 创建了一个 react APP,我使用 JEST 进行测试,我在创建的文件 app.test.js 中做了一些新的更改,并Promise将它与 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个回答

测试没有在 jenkins 上运行,因为 Jenkins 在 Windows 上运行,而且 Windows 不支持 glob,即 src/**/*.js。

在 Linux 操作系统上安装的 Jenkins 上构建项目时未遇到此问题!

我也面临同样的问题。正如 Naveen 上面提到的,Windows 不支持 glob,即 src/**/*.js。这就是为什么在 Jenkins 配置中,将标签更改为 Linux。在这里查看预览。 jenkins配置

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

npm install
npm run build
CI=true npm test

总是先跑npm install它将安装所有软件包。然后运行npm run build构建app 最后一定要写CI=true npm test. 它只会运行一次测试用例。如果您npm test改为编写,那么它将运行测试并永远进入监视模式。

我希望这有帮助。

我在我的本地机器上遇到这个问题,

"test": "jest --watchAll"