Как я могу сделать так, чтобы мои __main__
отпечатки файлов выводились при запуске тестов?Я имею в виду распечатки из этого файла, а не распечатки файлов с юнит-тестами.
У меня есть пример структуры (все файлы находятся в одном каталоге):
main.py :
import argparse
print('print me?') # no output
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument('name')
args = parser.parse_args()
print(args.name) # no output
other.py :
def print_me():
print('ran print_me')
test.py :
import unittest
import sh
import other
class TestMain(unittest.TestCase):
def test_main(self):
print('test_main') # prints it.
sh.python3('main.py', 'test123')
def test_other(self):
print('test_other') # prints it.
other.print_me()
И я запускаю егос python3 -m nose -s
или python3 -m unittest
, но это не имеет значения, отпечатки не выводятся из main.py
, а только те, которые определены непосредственно в тестовом файле.Вот что я получаю:
user@user:~/python-programs/test_main$ python3 -m nose -s
test_main
.test_other
ran print_me
.
----------------------------------------------------------------------
Ran 2 tests in 0.040s
OK
PS Конечно, если я запускаю main.py
без использования тестов, он печатается нормально (например, с использованием оболочки / интерпретатора python и вызова main.py с sh
).как в юнит-тестах)