Начиная с первого, это создает фиксированный файл данных. Макет (вводит в заблуждение) только жив во время функции фикстуры, потому что он использует return
.
Чтобы примерно сказать, что происходит для этого:
второй по поведению идентичен первому, за исключением того, что он использует форму менеджера контекста [111 ] вместо декоратора. лично мне не нравится форма декоратора, но это только я: D
(сначала, прежде чем я продолжу, pytest.yield_fixture
является устаревшим псевдонимом для pytest.fixture
- - вы можете просто использовать @pytest.fixture
)
Третий делает что-то другое! Патч жив на протяжении всего теста, потому что он «уступил» во время фиксации. Это своего рода способ создать установку + демонтаж все в одном. Вот пример выполнения:
next(...)
для него yield
, а затем «делает паузу» , Вы можете думать об этом как о совместной подпрограмме __enter__
из mock
, делающей патч активным yield
ed используется как значение прибора next(...)
на генераторе для исчерпания прибора __exit__
это оператор with, отменяющий патч лучший ответ - , это зависит . Поскольку 1 и 2 функционально эквивалентны, это зависит от личных предпочтений. Выберите 3. Если вам нужно, чтобы патч был активным на протяжении всего теста. И не используйте pytest.yield_fixture
, просто используйте pytest.fixture
.
Я ответил на свой собственный вопрос.
Оказывается, что список предпочтительных терминов перечислен в файле CustomDictionary.xml, который находится в каталоге установки FxCop (C:\Program Files\Microsoft FxCop 1.36\CustomDictionary.xml). Существует раздел <Dictionary> <Слова> <Удержанные от использования>, который содержит много <Термин> элементы. Просто удаление тех, которых я не хочу, добилось цели.