транспортир огурца не работает с несколькими тегами - PullRequest
0 голосов
/ 26 мая 2018

У меня есть несколько сценариев, помеченных @test и @high.Когда я запускаю один тег с синтаксисом ниже, он работает нормально.

package.json

"smoke": "babel-node node_modules/protractor/bin/protractor protractorConf.js --presets-env --cucumberOpts.tags \"@smoke\"",

Но когда я запускаю это, для запуска сценариев, помеченных как @test, так и @high,ничего не происходит и 0 сценариев вызываются.

package.json

"high": "babel-node node_modules/protractor/bin/protractor protractorConf.js --presets-env --cucumberOpts.tags \"@test,@high\""

Я пробовал много вариантов, как показано ниже, но ничего не работает.

--cucumberOpts.tags "@test" --cucumberOpts.tags "@high"
--cucumberOpts.tags @test --cucumberOpts.tags @high
--cucumberOpts.tags "(@test and @high)"
--cucumberOpts.tags "@test and @high"

, пожалуйста, помогите мне, как запустить несколько AND и ORсценарии.ниже приведены версии моего пакета.

"cucumber": "^4.2.1",
"protractor": "^5.3.2",
"protractor-cucumber-framework": "^5.0.0"

Ниже приведен фактический вывод при вызове команд.

c:\Personal\ATDD  (protractortest@1.0.0)
λ npm run high

> protractortest@1.0.0 high c:\Personal\ATDD
> babel-node node_modules/protractor/bin/protractor protractorConf.js --presets-env --cucumberOpts.tags "@test,@high"

(node:8100) [DEP0022] DeprecationWarning: os.tmpDir() is deprecated. Use os.tmpdir() instead.
[11:48:21] I/launcher - Running 1 instances of WebDriver
[11:48:21] I/hosted - Using the selenium server at http://localhost:4444/wd/hub
(node:8100) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.


0 scenarios
0 steps
0m00.000s
Cucumber HTML report c:\Personal\ATDD\reports\html/cucumber_reporter.html generated successfully.
[11:48:25] I/launcher - 0 instance(s) of WebDriver still running
[11:48:25] I/launcher - chrome #01 passed

Ответы [ 2 ]

0 голосов
/ 30 мая 2018

Ответ

Чтобы объяснить, что произошло, вы ожидали выполнения обоих указанных тегов, даже если в сценариях не было обоих тегов.

Для этого вам нужно ключевое слово or в выражениях тегов.

"@test or @high" - это то, что вы искали.

Дополнительная информация о выражениях тегов

Чтобы запустить один тег:

  • --cucumberOpts.tags "@tag1" - Запустить сценарии, помеченные @ tag1
  • --cucumberOpts.tags "not @tag1" - Запустить сценарии, не помеченные @ tag1

Если вы хотите запустить несколько тегов или указать теги, которые не должны выполняться:

  • --cucumberOpts.tags "@tag1 or @tag2" - Запустить сценарии, отмеченные @tag1 или @tag2 или обоими
  • --cucumberOpts.tags "@tag1 and @tag2" - Запустить сценарии, помеченные как @tag1 и @tag2
  • --cucumberOpts.tags "@tag1 not @tag2" - Запустить сценарии, помеченные @tag1, которые не помечены @ tag2

Для более сложных выражений тегов вы можете использовать круглые скобки для ясности или для изменения приоритета оператора:

  • --cucumberOpts.tags "@tag1 and not (@tag2 or @tag3)" - Запустите сценарии, помеченные тегом tag1, где вы делаетенет тегов @ tag2 или @ tag3
  • --cucumberOpts.tags "(not @tag1) and (@tag2 or @tag3)" - Сценарии запуска не помечены @tag1, но помечены @tag2 или @tag3 или обоими
0 голосов
/ 26 мая 2018

Я обнаружил проблему здесь.На самом деле, я неправильно понял, что @test и @high будут вызывать сценарии, помеченные любым из них.Теперь я знаю, что он вызовет сценарий, который помечен как @test & @high, как показано ниже

@smoke @test @high
Scenario: ...
Given ... 
When ...
Then ...

, а не как

@smoke @test
Scenario: ...
Given ... 
When ...
Then ...

@smoke @high
Scenario: ...
Given ... 
When ...
Then ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...