【问题标题】:running protractor test using npm使用 npm 运行量角器测试
【发布时间】:2016-08-26 04:11:29
【问题描述】:

我是量角器、节点和所有的新手。我学会了用量角器创建脚本。但是现在我需要在构建过程中运行这个测试脚本。

我看到人们可以使用 npm test/npm test e2e 运行它。我怎样才能做到这一点。

我的项目结构,

webapp/test/e2e

在我的项目中,他们使用 webpack 和 karma。

对不起,我真的很菜鸟,不知道如何设置。

我们还需要在 Jenkins 中对其进行配置,以便它运行并生成成功或失败标志。

任何设置它的建议都会非常有帮助。请尽可能详细,因为我现在很难理解。

非常感谢!

【问题讨论】:

    标签: jenkins npm protractor


    【解决方案1】:

    如果package.json 文件位于项目的根文件夹中,您可以将以下代码添加到其中并使用npm testnpm run test:e2e 运行它。这假设您在项目中本地安装了 Protractor 和 Karma,这将是最佳实践(如果它不在 package.json 中作为依赖项,则可能不是)。

    "scripts": {
        "postinstall": "node_modules/protractor/bin/webdriver-manager update",
        "test": "node_modules/karma/bin/karma start webapp/test/unit/karma.conf.js"
        "test:e2e": "node_modules/protractor/bin/protractor webapp/test/e2e/conf.js"
    
    }
    
    • postinstall - 这将在运行 npm install 后自动在本地运行 webdriver-manager update,当使用像 Jenkins 这样不断检查我们的存储库的 CI 服务器时,您可能会遇到缺少驱动程序的问题(它还为您节省了 CI步骤)

    • test - 这相当于karma start karma.conf.js

    • test:e2e - 这相当于protractor conf.js 它只是在本地运行它。要运行这些测试,请从您的 package.json 目录中键入 npm run test:e2e

    建议不要将 Protractor 和 Karma 组合在一起(尽管可能)Karma 应该用于单元和集成测试,而 Protractor 应该用于 e2e 测试。

    作为额外提示,可以通过 npm 脚本传递量角器或 karma 命令行参数。只需按照您通常的方式附加它(例如
    "webapp/test/e2e/conf.js --baseUrl=https://yourbaseurl.com/"

    您关于将 NPM 集成到 Jenkins 中的问题已经在 how to run npm/grunt command from jenkins 中得到了很好的回答,但请注意,完全在 Jenkins 中运行测试会导致它无头运行,这在使用 Windows 时会导致它在屏幕上的会话 0 中运行分辨率会变小,这会导致某些测试失败,预先在终端/Powershell 窗口中打开 selenium 服务器将导致 Jenkins 将您的测试路由通过它,因此它将直观地显示在您的计算机上。

    【讨论】:

    • 非常感谢。我现在可以运行测试,将您的代码添加到 package.json。对于詹金斯,我会听从你的指示。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-18
    • 1970-01-01
    • 2019-03-28
    • 1970-01-01
    • 2018-10-02
    • 2014-02-22
    • 2020-05-15
    相关资源
    最近更新 更多