Python ユニット テストを含むディレクトリがあります。各ユニット テスト モジュールは、test_*.pyという形式です。私はall_test.pyというファイルを作成しようとしています。これは、ご想像のとおり、前述のテスト形式のすべてのファイルを実行し、結果を返します。これまでに 2 つの方法を試しましたが、どちらも失敗しました。2 つの方法を紹介します。これを正しく実行する方法を知っている人がいれば幸いです。 最初の勇敢な試みとして、私は「ファイル内のすべてのテスト モジュールをインポートして、このunittest.main()doodad を呼び出せば、動作するはずだ」と考えました。しかし、それは間違いでした。 import glob
import unittest
testSuite = unittest.TestSuite()
test_file_strings = glob.glob('test_*.py')
module_strings = [str[0:len(str)-3] for str in test_file_strings]
if __name__ == "__main__":
unittest.main()
これは機能しませんでしたが、次のような結果になりました: $ python all_test.py
----------------------------------------------------------------------
Ran 0 tests in 0.000s
OK
2 回目の試みとして、このテスト全体をもっと「手動」で実行してみようと思いました。そこで、以下のように実行してみました。 import glob
import unittest
testSuite = unittest.TestSuite()
test_file_strings = glob.glob('test_*.py')
module_strings = [str[0:len(str)-3] for str in test_file_strings]
[__import__(str) for str in module_strings]
suites = [unittest.TestLoader().loadTestsFromName(str) for str in module_strings]
[testSuite.addTest(suite) for suite in suites]
print testSuite
result = unittest.TestResult()
testSuite.run(result)
print result
#Ok, at this point I have a result
#How do I display it as the normal unit test command line output?
if __name__ == "__main__":
unittest.main()
これもうまくいきませんでしたが、かなり近いようです! $ python all_test.py
]>]>]>
----------------------------------------------------------------------
Ran 0 tests in 0.000s
OK
何らかのスイートがあり、結果を実行できるようです。 しかないと表示されているのが少し心配です。 であるrun=1べきだと思いますrun=2が、これは進行中です。しかし、結果を main に渡して表示するにはどうすればよいでしょうか。または、基本的にこれを動作させて、このファイルを実行し、その際にこのディレクトリ内のすべてのユニット テストを実行できるようにするにはどうすればよいでしょうか。
defaultdict(defaultdict(int))次のコードを動作させるためにを使用する方法はありますか? for x in stuff:
d[x.a][x.b] += x.c_int
dx.aおよび要素に応じてアドホックに構築する必要がありますx.b。 以下を使用できます: for x in stuff:
d[x.a,x.b] += x.c_int
しかし、そうすると次のものが使用できなくなります: d.keys()
d[x.a].keys()
この質問に対する回答は既にここにあります : 文字列内の複数のスペースを削除する簡単な方法はありますか? (27件の回答) 9年前に 閉鎖されました 。 次のような文字列があります: mystring = 'Here is some text I wrote '
二重、三重 (...) の空白文字を単一のスペースに置き換えるにはどうすればよいでしょうか。 mystring = 'Here is some text I wrote'
この質問に対する回答は既にここにあります : リストのリストからフラット リストを作成するにはどうすればよいですか? (32件の回答) 8年前に 閉鎖されました 。 Python でリストのリストを単一のリスト (または反復子) に結合するための短い構文はありますか? たとえば、次のようなリストがあり、a、b、c を反復処理したいとします。 x = [["a","b"], ["c"]]
私が思いつく最善のものは次のとおりです。 result = []
[ result.extend(el) for el in x]
for el in result:
print el