マルチプロセッシングを使用して計算されたものでセットアップされる鼻でテストを作成しようとしています。
私はこのディレクトリ構造を持っています:
code/
tests/
tests.py
tests.py は次のようになります。
import multiprocessing as mp
def f(i):
return i ** 2
pool = mp.Pool()
out = pool.map(f, range(10))
def test_pool():
"""Really simple test that relies on the output of pool.map.
The actual tests are much more complicated, but this is all
that is needed to produce the problem."""
ref_out = map(f, range(10))
assert out == ref_out
if __name__ == '__main__':
test_pool()
code
ディレクトリから実行するとpython tests/tests.py
、 .
nosetests tests/tests.py
完了できません。起動しますが、呼び出しを通過せず、pool.map
ハングします。
これはなぜですか?また、最も簡単な解決策は何ですか?