我是新的量角器,节点和所有人。我学会了用量角器创建脚本。但是现在我需要在构建中运行这个测试脚本。
我见过人们可以用npm test / npm test e2e来运行它。我怎样才能做到这一点。
我的项目结构,
web应用/测试/ E2E
在我的项目中,他们正在使用webpack和业力。
对不起,我真的很赞,并且不知道如何设置它。
我们还需要在Jenkins中配置它,因此它会运行并生成成功或失败的标志。
任何有关设置的建议都会非常有用。请尽可能详细说明,因为我现在很难理解这些事情。
非常感谢你!
答案 0 :(得分:1)
如果package.json
文件位于项目的根文件夹中,您可以将以下代码添加到该文件中,然后使用npm test
和npm 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通过它来测试,以便它可以直观地显示在您的计算机上。