Pytest терпит неудачу при использовании повышения pyhamcrest

В настоящее время у меня есть тестовые примеры, подобные следующему:

          def test_foo(self):
        assert_that(self.target.do(), raises(FileNotFoundError))

Который проходит с использованием стандартной среды юнит-тестирования Python, однако, если я перехожу на использование pytest, он терпит неудачу. Переключение на синтаксис pytest работает (как показано ниже), но почему в этом случае не работает сопоставитель pyhamcrest?

          def test_foo(self):
        with pytest.raises(FileNotFoundError):
             self.target.do()

1 ответ

PyHamcrestraises()matcher требует, чтобы вы сделали вызов сcalling()функция - см. учебник . Итак, в вашем случае вам нужно:

      assert_that(calling(self.target.do), raises(FileNotFoundError))
Другие вопросы по тегам