Angular cli + 量角器 + 黄瓜 - 硒

Angular cli + protractor + cucumber - selenium

我想知道是否有可能运行 angular cli 项目的设置,使用 cucumber e2e 测试,使用量角器步骤,而不使用 selenium 服务器。当我搜索此类配置时,我只会找到具有 seleniumAddress 设置的配置。

那么,没有它可以运行吗?

您可以在 protractor config 中使用 directConnect: true 来 运行 没有 selenium 服务器的量角器测试。但请注意,此选项目前仅适用于 Chrome 和 Firefox。

需要服务器运行宁 W3C WebDriver 规范

根据你的问题,你可以 运行 没有 selenium 服务器的量角器吗?是的,如果您使用的是遵循 W3C WebDriver 规范的浏览器驱动程序。因此,在配置文件中设置 directConnect: true(angular-cli 默认值)基本上告诉 Protractor 启动驱动程序二进制文件,然后 Protractor 创建一个驱动程序提供程序来与该二进制文件通信。

驱动程序提供商选项

驱动程序提供商可能不同。你的问题也提到了seleniumAddress。那么这是如何工作的呢?基本上,Protractor 会读取您的配置文件和 decides which driver provider to launch。如果您没有使用 directConnect 并决定在您的配置中使用 seleniumAddress 选项,那么您可以启动附加会话或托管驱动程序。附加会话意味着您有一个先前的会话 运行ning 并且 Protractor 将针对会话 ID 启动测试。托管意味着您已经开始针对 运行ning selenium 独立服务器进行测试。通常selenium独立服务器是http://localhost:4444.

还有其他类型的驱动程序提供程序可以帮助您启动测试,如果您遵循 buildDriverProvider 方法中的条件,您可以选择要启动的驱动程序提供程序。显然(根据条件),如果您有 directConnectseleniumAddress,您将使用直接连接驱动程序提供商启动。

关于 webdriver-manager 的快速说明

还有关于 webdriver-manager 的快速说明。如果您计划在 Firefox 上启动 Protractor 测试,则需要下载 Gecko 驱动程序。如果您使用 seleniumAddress 选项,您还需要下载 selenium-standalone 服务器。 angular-cli 仅使用命令 webdriver-manager update --standalone false --gecko false 下载 chromedriver。要下载其余部分,只需删除设置为 false 的标志:webdriver-manager update

你配置中的 Cucumber

最后你想要黄瓜和量角器。 Protractor 支持将 Cucumber 作为自定义框架。您需要要求 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'
}