FitNesse - проверьте, не содержит ли переменная текст в таблице скриптов

В наших тестах FitNesse мы используем ScriptTable для вызова внешнего инструмента, который импортирует некоторые данные в нашу базу данных. Таблица выглядит так:

!| script | Fixtures.MyClass |
| Update Dir | c:\FitNesse\XXXX\XXXXX |
| check | Message | |

UpdateDir — это функция, определенная в наших фикстурах. Он устанавливает содержимое журнала в переменную с именем «Сообщение». Содержимое сообщения выглядит следующим образом:

Daten aus der Tabelle 'Table1' wurden gelöscht.Datei 'c:\FitNesse\XXX\File1.xml' konnte nicht importiert werden: ORA-00904: "ColX": ungültiger Bezeichner
Daten aus der Tabelle 'Table2' wurden gelöscht.Datei 'c:\FitNesse\XXX\File2.xml' wurde erfolgreich importiert.

С «check Message» содержимое переменной отображается во время выполнения в таблице, но пока не проверяется.

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

Если переменная «Сообщение» не содержит текста «ORA-», то Успех Иначе Ошибка

Я попытался добавить следующую строку в ScriptTable:

| ensure | Message | should not contain | ORA- |

Но теперь таблица выдает ошибку «убедитесь, что метод messageora не найден в PassivPlusFixtures.MyClass». Может ли кто-нибудь помочь мне добиться желаемого поведения? Огромное спасибо заранее.


person Chris2011931    schedule 17.03.2020    source источник


Ответы (1)


Вы можете проверить использование регулярных выражений в таблицах сценариев, используя эту функцию, которую вы должен быть в состоянии сделать то, что вам нужно. Но учитывая ужасное регулярное выражение, рекомендую спрятать проверку в сценарии.

Что-то вроде:

|script    |Fixtures.MyClass         |
|Update Dir|c:\FitNesse\XXXX\XXXXX   |
|check     |Message|=~/^((?!ORA).)*$/|
person Fried Hoeben    schedule 24.03.2020