Ожидается модульный тест PythonFailureIf - PullRequest
0 голосов
/ 08 июня 2018

Я могу быть слепым и что-то упустить в модульном тесте Python FrameWork (Python 2.7.10).Я пытаюсь пометить класс как ожидаемый сбой, но только если он запущен в Windows.Другие платформы работают правильно.Таким образом, основная концепция будет:

@unittest.expectedFailureIf(sys.platform.startswith("win"), "Windows Fails")
class MyTestCase(unittest.TestCase):
    # some class here

Ответы [ 2 ]

0 голосов
/ 08 июля 2019

Как уже упоминалось, ни Python 2, ни Python 3 (как в 3.8) не имеют этого встроенного.

Однако вы можете довольно легко создать это самостоятельно, определив его в верхней части вашего файла:

def expectedFailureIf(condition):
    """The test is marked as an expectedFailure if the condition is satisfied."""
    def wrapper(func):
        if condition:
            return unittest.expectedFailure(func)
        else:
            return func
    return wrapper

Тогда вы можете сделать по существу то, что вы предлагаете (я не добавил причину, поскольку этого нет в существующей ожидаемой ошибке):

class MyTestCase(unittest.TestCase):
    # some class here

    @expectedFailureIf(sys.platform.startswith("win"))
    def test_known_to_fail_on_windows_only(self):
0 голосов
/ 08 июня 2018

Из документации **https://docs.python.org/2/library/unittest.html#skipping-tests-and-expected-failures

Нет expectedFailureIf(), вы можете использовать expectedFailure() или skipIf(sys.platform.startswith("win", "Windows Fails"))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...