Size: a a a

2020 September 10

B

Bola in JS for testing
источник

OK

Oleksandr Khotemskyi in JS for testing
Sergey Khristenko
а можно пожалуйста, поподробнее почему это плохо?
Главная причина - тест раннеры типа жасмин и мока на это не расчитаны. К примеру там нет возможности установить таймаут на describe, или прервать исполнение последующих it после упавшего. К тому же с репортерами будет проблема - они тоже не расчитаны на такую структуру.
источник

B

Bola in JS for testing
источник

SK

Sergey Khristenko in JS for testing
Oleksandr Khotemskyi
Главная причина - тест раннеры типа жасмин и мока на это не расчитаны. К примеру там нет возможности установить таймаут на describe, или прервать исполнение последующих it после упавшего. К тому же с репортерами будет проблема - они тоже не расчитаны на такую структуру.
так вроде есть таймаут для дескрайб https://mochajs.org/#suite-level
и bail есть, чтобы прервать исполнение
источник

SK

Sergey Khristenko in JS for testing
с репортами хз конечно, они вроде разные есть
источник

SK

Sergey Khristenko in JS for testing
Vitalii Grygoruk
как минимум плохо тем что у вас тесты (`it`ы) зависимы тогда. Со всеми вытекающими
т.е. бдд плохо, потому что шаги зависимые? Это не те зависимые тесты ))
источник

OK

Oleksandr Khotemskyi in JS for testing
Sergey Khristenko
так вроде есть таймаут для дескрайб https://mochajs.org/#suite-level
и bail есть, чтобы прервать исполнение
bail прервет все в дескрайб и во всех последующих
источник

OK

Oleksandr Khotemskyi in JS for testing
Sergey Khristenko
так вроде есть таймаут для дескрайб https://mochajs.org/#suite-level
и bail есть, чтобы прервать исполнение
а это помоему таймаут для каждого it, а не для describe целиком
источник

OK

Oleksandr Khotemskyi in JS for testing
Oleksandr Khotemskyi
а это помоему таймаут для каждого it, а не для describe целиком
надо проверить, уже забыл
источник

SK

Sergey Khristenko in JS for testing
Oleksandr Khotemskyi
а это помоему таймаут для каждого it, а не для describe целиком
для дескрайб
Suite-level timeouts may be applied to entire test “suites”

ну а вообще его куда поставишь, для того и будет ))
источник

OK

Oleksandr Khotemskyi in JS for testing
Sergey Khristenko
для дескрайб
Suite-level timeouts may be applied to entire test “suites”

ну а вообще его куда поставишь, для того и будет ))
вот не уверен, я уже когда то смотрел на этот this.timeout. Но ты говоришь убедительно 🙂
источник

OK

Oleksandr Khotemskyi in JS for testing
Я когда то копал исходники моки, и не заметил как там таймауты для сьюта работают
источник

SK

Sergey Khristenko in JS for testing
Oleksandr Khotemskyi
bail прервет все в дескрайб и во всех последующих
и правда прерывает вложенные в файле https://github.com/mochajs/mocha/issues/2894

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

OK

Oleksandr Khotemskyi in JS for testing
Sergey Khristenko
и правда прерывает вложенные в файле https://github.com/mochajs/mocha/issues/2894

но я хз насколько это критично для стэпов. Наверное, обычно пишут - один файл - один сценарий.
Ой по разному, я такого насмотрелся, и it как шаги, и вложенные дескрайбы на 5 уровней. И генерящиеся на лету дескрайбы и иты. И даже динамическая разбивка it на разные файлы чтобы лучше паралелилось.
источник

BO

Boris Osipov in JS for testing
Sergey Khristenko
а можно пожалуйста, поподробнее почему это плохо?
ну кмк тут все просто. оно добавляет лишних проблем. при этом не добавляя бОльшей ценности.
там уже писали и про репортеры и про прочие интеграции.  при этом почти все можно решить написав
it() {
step("some name1")
step("some name2")
step("some name3")
step("some name4")
}


единственный плюс, который я вижу - при падении step2 в отчете будет явно видно что проверки 3-4 не выполнялись и будет "понятно" что не проверено прям из этого отчета.
источник

BO

Boris Osipov in JS for testing
ну т.е. примерно как в кукумбер. там такая же история со skipped steps
источник

OK

Oleksandr Khotemskyi in JS for testing
Sergey Khristenko
и правда прерывает вложенные в файле https://github.com/mochajs/mocha/issues/2894

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

https://github.com/mochajs/mocha/wiki/Shared-Behaviours
источник

BO

Boris Osipov in JS for testing
мб я каких-то убер плюсов не вижу от этой идеи. так расскажите)
источник

OK

Oleksandr Khotemskyi in JS for testing
Boris Osipov
мб я каких-то убер плюсов не вижу от этой идеи. так расскажите)
для меня плюс что можно переколбасить на один ит - один тест довольно быстро и сразу все работает намного лучше. И ты такой рыцарь на белом коне все починил, а даже не вспотел
источник

B

Bola in JS for testing
Boris Osipov
ну кмк тут все просто. оно добавляет лишних проблем. при этом не добавляя бОльшей ценности.
там уже писали и про репортеры и про прочие интеграции.  при этом почти все можно решить написав
it() {
step("some name1")
step("some name2")
step("some name3")
step("some name4")
}


единственный плюс, который я вижу - при падении step2 в отчете будет явно видно что проверки 3-4 не выполнялись и будет "понятно" что не проверено прям из этого отчета.
а как будет видно, что step 3 и 4 не выполнялись из отчета?
источник