запустить pytest из скрипта и сохранить вывод строки в переменную - PullRequest
0 голосов
/ 15 апреля 2020

Я хотел бы запустить Pytest из скрипта и сохранить вывод в виде строки. Что-то вроде:

   test_output=pytest.main(['-qq', '-x', test_dir])
   print(test_output)

Возможно ли это? Я знаю, что могу записать его в файл и затем прочитать файл, но это кажется излишне сложным.

Ответы [ 2 ]

1 голос
/ 15 апреля 2020

Вы можете использовать contextlib.redirect_stdout:

import io
from contextlib import redirect_stdout
import pytest

if __name__ == "__main__":
    buffer = io.StringIO()
    with redirect_stdout(buffer):
        pytest.main()
    out = buffer.getvalue()
    print(out)
0 голосов
/ 15 апреля 2020

Я думаю, что если у вас есть виртуальная среда, вы устанавливаете в нее переменные среды. Тогда вы сможете прочитать и написать их. Но создать файл, вероятно, проще.
https://www.nylas.com/blog/making-use-of-environment-variables-in-python/

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