使用npm运行量角器测试

时间:2016-08-25 16:46:27

标签: jenkins npm protractor

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

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

我的项目结构,

web应用/测试/ E2E

在我的项目中,他们正在使用webpack和业力。

对不起,我真的很赞,并且不知道如何设置它。

我们还需要在Jenkins中配置它,因此它会运行并生成成功或失败的标志。

任何有关设置的建议都会非常有用。请尽可能详细说明,因为我现在很难理解这些事情。

非常感谢你!

1 个答案:

答案 0 :(得分: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步骤)

  • 测试 - 这相当于karma start karma.conf.js

  • test:e2e - 这相当于protractor conf.js它只是在本地运行它。要运行这些测试,请使用npm run test:e2e

  • 从目录中键入package.json

建议不要将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时会导致它在Session 0中运行屏幕分辨率会变小,导致某些测试失败,预先在终端/ Powershell窗口中打开selenium服务器会导致Jenkins通过它来测试,以便它可以直观地显示在您的计算机上。