使用子进程执行测试,如下所示:
subprocess.Popen(["./manage.py", "test", "-x", "--settings=settings_test"], stdout=subprocess.PIPE, stdin=subprocess.PIPE).communicate()
只捕获测试输出的初始部分。所以我得到返回的元组
("x1b[32mUsing database: developx1b[0mnx1b[33mRunning tests against sqlite3 in memory databasex1b[0mnnosetests --verbosity 1 -xnCreating test database for alias 'default'...nDestroying test database for alias 'default'...n", None)
但是,这遗漏了关键的最后三行
Ran 260 tests in 70.131s
OK (SKIP=1)
是否有方法使用子流程捕获此输出?
这是因为摘要是为错误编写的,所以您也需要捕获它。
sub = subprocess.Popen(
["./manage.py", "test", "-x", "--settings=settings_test"],
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = sub.communicate()
# err should have the summary