我想知道是否可以使用量角器步骤运行黄瓜e2e测试的角度cli项目设置,而不使用selenium服务器。当我搜索这样的配置时,我只找到具有seleniumAddress设置的配置。
那么,没有它可以运行吗?
答案 0 :(得分:4)
根据您的问题,您可以在没有selenium服务器的情况下运行Protractor吗?是的,如果您使用的是遵循W3C WebDriver规范的浏览器驱动程序。因此,在配置文件中设置directConnect: true
(angular-cli default)基本上告诉Protractor启动驱动程序二进制文件,然后Protractor创建一个驱动程序提供程序来与该二进制文件通信。
驱动程序提供商可能不同。您的问题也提到了seleniumAddress
。那么这是如何工作的呢?基本上,Protractor会读取您的配置文件decides which driver provider to launch。如果您未使用directConnect
并且已决定在配置中使用seleniumAddress
选项,则可以启动附加会话或托管驱动程序。附加会话意味着您之前的会话正在运行,而Protractor将针对会话ID启动测试。托管意味着您已经开始针对正在运行的selenium独立服务器进行测试。通常,selenium独立服务器是http://localhost:4444
。
还有其他类型的驱动程序提供程序可帮助您启动测试,如果您按照buildDriverProvider
方法执行条件,则可以选择要选择的启动方式。显然(从条件开始),如果您有directConnect
和seleniumAddress
,您将使用直接连接驱动程序提供程序启动。
还有关于webdriver-manager的快速说明。如果您计划在Firefox上启动Protractor测试,则需要下载Gecko驱动程序。如果您使用seleniumAddress
选项,则还需要下载selenium-standalone服务器。 angular-cli仅使用命令webdriver-manager update --standalone false --gecko false
下载chromedriver。要下载其余部分,只需删除设置为false的标志:webdriver-manager update
所以最后你想要用量角器黄瓜。量角器支持黄瓜作为自定义框架。您需要protractor-cucumber-framework
。希望你在configuration in the Protractor-cookbook上找到了这个。
您应该在配置中添加以下内容以使黄瓜正常工作:
framework: 'custom',
frameworkPath: require.resolve('protractor-cucumber-framework'),
cucumberOpts: {
compiler: "ts:ts-node/register",
monochrome: true,
strict: true,
plugin: ["pretty"],
require: ['../../stepdefinitions/*.ts', '../../support/*.ts'],
//tags help us execute specific scenarios of feature files
tags: '@AddScenario,@SubtractScenario,@MultiplyScenario,@DivideScenario,@ModulusScenario'
}
答案 1 :(得分:1)
您可以使用protractor config中的directConnect: true
在没有selenium服务器的情况下运行量角器测试。但请注意,此选项目前仅适用于Chrome和Firefox。