1

テキストファイルに解析しようとしている長い一連の単体テストがあり、これは unittest.main() を呼び出すいくつかの異なる使用法で達成できることはわかっていますが、少し問題があります。私が取り組んでいるコードは、関数を使用する必要があります。現在は次のように書かれています

unittest.TextTestRunner(verbosity=2).run(customFunction())

その stdout は別のファイルによって読み取られます

p = Popen(command, stdout=PIPE, stderr=STDOUT stdin=PIPE)
result = p.communicate()

# Write result to .txt file

これに関する唯一の問題は、単体テストで呼び出さなければならない他のプログラムが原因で、結果変数をコンソール出力に割り当てるときにプログラムがハングすることです。(コンソール出力をテキスト ファイルに解析するのではなく) 単体テスト自体をログ ファイルに出力するようにコードを書き直そうとしていますが、 unittest.main( ) 提供する必要があるカスタム関数が原因です。これを行う方法について誰かアドバイスや解決策がありますか?

4

2 に答える 2

3

私は自分でこれを行う方法を見つけました.TextTestRunnerで使用できるストリームオプションがあり、ユニットテストの出力を任意のファイルオブジェクトに送信します. したがって、txt ファイルに書き込みたい場合は、次のように記述します。

logFile = open("C:/folder/logfile.txt", "w")
unittest.TextTestRunner(stream=logFile, verbosity=2).run(customFunction())
logFile.close()

誰かが後で同じ問題に遭遇した場合に、私がしたフラストレーションに遭遇しないように、これを共有すると思いました.

于 2013-01-14T17:04:24.347 に答える