Тесты, извлеченные из переменной коллекции — сбои тестов останавливают выполнение последующих тестов.

avatar
Jim
1 июля 2021 в 16:09
44
2
0

У меня есть тесты, которые я хочу использовать в нескольких вызовах API.

Использование JavaScript из внешних файлов было открытым вопросом в течение 6 лет, но официально не поддерживается (пока). Я храню тесты в переменных коллекции, чтобы их можно было получить в каждом тесте API.

Проблема заключается в том, что тесты, которые дают сбой, останавливают выполнение, как общий сбой JS.

Тесты, сохраняемые в переменных коллекции с помощью Pre-req API

В вызове API установки я сохраняю общую библиотеку тестов с помощью сценария предварительного запроса. Это работает нормально.

enter image description here

Обычный сбой теста

Когда тест закодирован в области тестирования API, сбои не останавливают выполнение последующих тестов.

enter image description here

Сбой теста, полученного из переменной коллекции

Я могу извлечь тесты из переменной коллекции и запустить их без проблем. Однако, когда ожидание Chai не выполняется, похоже, что оно рассматривается как сбой JavaScript, а не как сбой теста/ожидания.

Тестовый запуск завершился неудачно, последующие тесты для этого API не запускаются, как и другие API в коллекции.

enter image description here

Как сделать так, чтобы тесты, извлеченные из переменной коллекции, выполнялись/проваливались, как жестко запрограммированные тесты?

Источник

Ответы (2)

avatar
Jim
26 августа 2021 в 21:27
0

Проблема заключалась в том, как я вызывал библиотечную функцию. Это работает как нужно, если библиотечная функция (с ожиданиями) вызывается в анонимной функции, переданной в pm.test(), а не переданной функции.

enter image description here

avatar
lucas-nguyen-17
2 июля 2021 в 00:46
0

Полагаю, проблема в том, как вы вызываете функцию из utils

.

Просто utils.payloadIs204, а не utils.payloadIs204()

И у меня работает

enter image description here


Обновление повторное использование с передачей параметров.

Предварительный запрос вкладки

pm.environment.set("abc", function print(text1, text2){
    console.log(text1)
    console.log(text2)
} + "");

Тест вкладок

let script = pm.environment.get("abc");
eval((script + "print('name', 'age')"))
Jim
17 августа 2021 в 21:35
0

У вас есть предложение о том, как передавать переменные? Удаление пустых скобок дает желаемое поведение при сбоях теста. Теперь мне нужно передать некоторые аргументы функции, хранящейся в виде переменной коллекции, например utils.payloadIs204("foo", "bar", "baz"). Как только я добавлю скобки и аргументы, я вернусь к первоначальной проблеме.

lucas-nguyen-17
18 августа 2021 в 03:09
0

@ Джим Привет, я обновил ответ, если он хорош, не стесняйтесь голосовать. Спасибо