【问题标题】:How to automate Mocha tests with Jenkins?如何使用 Jenkins 自动化 Mocha 测试?
【发布时间】:2017-05-22 09:53:34
【问题描述】:

所以我已经建立了一个 github 项目并将其链接到 Jenkins,但是每当我执行构建尝试时,它都会在控制台中显示:

C:\Program Files (x86)\Jenkins\workspace\SYS-ictlab>mocha
'mocha' is not recognized as an internal or external command,
operable program or batch file.

我错过了什么?

提前致谢

【问题讨论】:

    标签: testing jenkins mocha.js


    【解决方案1】:

    如果您在此之前已将 npm install 作为 CI 阶段的一部分执行,并且您在 package.json 中添加了 mocha 作为 (dev) 依赖项,则可以按如下方式调用 mocha 二进制文件

    node ./node_modules/mocha/bin/mocha
    

    您正在尝试调用该命令,就好像它已被“链接”一样,因此它可以全局访问,这只有在运行npm install -g mocha 后才可行。这可能并非在所有 CI 环境中都可行,因此上述解决方案更为常见。

    【讨论】:

    • 它给了我''。未被识别为内部或外部命令、可运行程序或批处理文件。现在
    • 尝试使用node 命令,因为我刚刚编辑了该命令。
    • 我刚刚做了,现在它说:'module.js:471 throw err; ^ 错误:找不到模块 './formats'' '
    • 这可能是您的代码的问题,而不是 mocha。 module.js 的第 471 行包含错误
    【解决方案2】:

    我遇到了同样的错误,我通过在命令前面添加“npx”来解决它。示例:

    npx mocha test-file.js
    

    我的测试在与 Jenkins 构建相同的位置从命令提示符运行良好,

    C:\Program Files (x86)\Jenkins\workspace\project-name>mocha test-file.js
    

    但在 Jenkins 中实际运行构建时,我会得到“mocha”无法识别...错误消息。在前面添加 npx 为我解决了这个问题!

    【讨论】:

      【解决方案3】:

      我遇到了类似的情况,即使我运行了npm install,它还是抛出了'mocha' is not recognized as an internal or external command,所以我更改了Jenkins配置文件。

      在配置文件中,在 build 部分,给出这个命令,它将工作而不会抛出任何错误。 (假设您的 package.json 具有有效的 mocha 运行命令)

      npm install
      chmod 777 ./node_modules/.bin/mocha
      npm uninstall mocha && npm i mocha
      npm test 
      

      【讨论】:

        猜你喜欢
        • 2012-10-28
        • 1970-01-01
        • 1970-01-01
        • 2016-03-03
        • 2017-08-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多