質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

0回答

172閲覧

単体testをまとめて行う時に、ファイルごとに独立したプロセスで実行させたい

gottadiveintopy

総合スコア736

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2018/11/21 18:14

編集2018/11/23 15:12

環境

  • Python 3.6.3
  • nose 1.3.7
  • OS LinuxMint18.2(Ubuntu16.04LTS派生)
  • pipenvで仮想環境を作っています

情況

testsというディレクトリに以下の三つのファイルがあります。

python

1# shared_module.py 2count = 0

python

1# test_part1.py 2import unittest 3import shared_module 4 5 6class SeparateProcessTestCase(unittest.TestCase): 7 8 def test_increament(self): 9 self.assertEqual(shared_module.count, 0) 10 shared_module.count += 1

python

1# test_part2.py 2# (test_part1.pyと同じ内容)

test_part1.pytest_part2.pyをまとめてtestする為に以下の三つのコマンドを試しましたが

  • python -m unittest discover -s ./tests
  • nosetests
  • nosetests --process-restartworker

三つとも全く同じ以下の出力で失敗しました。

text

1.F 2====================================================================== 3FAIL: test_increament (test_part2.SeparateProcessTestCase) 4---------------------------------------------------------------------- 5Traceback (most recent call last): 6 File "<省略>/test_part2.py", line 8, in test_increament 7 self.assertEqual(shared_module.count, 0) 8AssertionError: 1 != 0 9 10---------------------------------------------------------------------- 11Ran 2 tests in 0.006s 12 13FAILED (failures=1)

なのでtest_part1.pytest_part2.pyは同一のプロセスでtestされているようです。独立したプロセスで実行させるにはどうすれば良いでしょうか?

追記

stackoverflowにこのような回答があるところを見ると、unittestやnoseではファイルごとに独立したプロセスは与えられないようです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問