2

次のようにサブプロセスを使用してテストを実行する場合:

subprocess.Popen(["./manage.py", "test", "-x", "--settings=settings_test"], stdout=subprocess.PIPE, stdin=subprocess.PIPE).communicate()

テスト出力の最初の部分のみがキャプチャされます。だから私は返されたタプルを取得します

 ("\x1b[32mUsing database: develop\x1b[0m\n\x1b[33mRunning tests against sqlite3 in memory database\x1b[0m\nnosetests --verbosity 1 -x\nCreating test database for alias 'default'...\nDestroying test database for alias 'default'...\n", None)

ただし、これには重要な最後の 3 行がありません

Ran 260 tests in 70.131s

OK (SKIP=1)

サブプロセスを使用してこの出力をキャプチャする方法はありますか?

4

1 に答える 1

1

これは、要約が stderr に書き込まれるためです。そのため、それもキャッチする必要があります。

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
于 2013-03-12T17:50:48.963 に答える