Как передать None или пустой или несколько типов данных в таблице примеров в Python Behave - PullRequest
0 голосов
/ 05 февраля 2019

Я новичок в Python - веди себя, и теперь я застрял, поэтому нужна твоя помощь.У меня есть схема сценария с таблицей примеров, и я хочу выполнить как положительный, так и отрицательный тест, поэтому я хочу передать столбец None или разные типы данных.Например,

Scenario Outline:
Given I have <text> different scenarios with <sample> parameter

Examples:
| text | Sample |
| 5    | 33     |
| a    |        |
|      | abc    |

Теперь, когда я ничего не передаю, я не могу выполнить этот шаг.Не могли бы вы помочь.

Я попробовал приведенный ниже код:

@parse.with_pattern(r"\w+")
def parse_string(text):
    return text.strip()

register_type(Val=parse_string)
use_step_matcher("cfparse")

@given(u'I have {text:Val?} different scenarios with {sample:Val?} 
parameter')
def step_impl(context, text, sample):
   context.text = text
   context.sample = sample

, но приведенный выше код работает, только если я использую тип регистра только с одним параметром, т. Е. Либо для текста, либо для образца.Если я использую его для обоих, я получаю сообщение об ошибке, что шаг не реализован.

Если вы можете предложить мне лучший способ, то я буду благодарен.

1 Ответ

0 голосов
/ 13 февраля 2019

К счастью, это простое исправление!Обратите внимание на переменные параметров, использованные в данном шаге:

Given I have <text> different scenarios with <sample> parameter

Вторая переменная параметра sample - строчная.Однако заголовок второго столбца таблицы примера - Sample, который является заглавным.Они должны быть идентичны.Измените Sample на sample, и тест должен пройти успешно!

Вот как выглядел вывод на моей машине:

$ behave --tags @temp
Feature: Temp Test # features/unit.feature:1

  @temp
  Scenario Outline:  -- @1.1                             # features/unit.feature:13
    Given I have 5 different scenarios with 33 parameter # features/steps/unit.py:22 0.001s

  @temp
  Scenario Outline:  -- @1.2                           # features/unit.feature:14
    Given I have a different scenarios with  parameter # features/steps/unit.py:22 0.000s

  @temp
  Scenario Outline:  -- @1.3                             # features/unit.feature:15
    Given I have  different scenarios with abc parameter # features/steps/unit.py:22 0.000s

1 feature passed, 0 failed, 2 skipped
3 scenarios passed, 0 failed, 19 skipped
3 steps passed, 0 failed, 57 skipped, 0 undefined
Took 0m0.002s
...