2017-07-21 31 views
1

CircleCIでDjangoユニットテストを実行中です。 Djangoの--parallel引数を追加しないと、テストは正常に動作します。ただし、テスト実行に--parallel=2を追加すると、以下のこの不明瞭なエラーで失敗します。CircleCIで並列実行するとDjango Unittestが失敗する

--keepdbの有無にかかわらず両方のバージョンを試しましたが、どちらも同じエラーで失敗します。 _clode_test_dbのコードは、--keepdb=Trueを渡すとすぐに失敗して復帰することを示唆しています。 django/db/backends/mysql/creation.pyラインを参照してください:29ここで[https://github.com/django/django/pull/4761/files]

がここで何が起こっているか上の任意のアイデアをお願い申し上げ

Using existing clone for alias 'default' ('test_django_learned')... 
Traceback (most recent call last): 
    File "manage.py", line 10, in <module> 
    execute_from_command_line(sys.argv) 
    File "/home/circleci/sliderule/venv/lib/python2.7/site-packages/django/core/management/__init__.py", line 353, in execute_from_command_line 
    utility.execute() 
    File "/home/circleci/sliderule/venv/lib/python2.7/site-packages/django/core/management/__init__.py", line 345, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "/home/circleci/sliderule/venv/lib/python2.7/site-packages/django/core/management/commands/test.py", line 30, in run_from_argv 
    super(Command, self).run_from_argv(argv) 
    File "/home/circleci/sliderule/venv/lib/python2.7/site-packages/django/core/management/base.py", line 348, in run_from_argv 
    self.execute(*args, **cmd_options) 
    File "/home/circleci/sliderule/venv/lib/python2.7/site-packages/django/core/management/commands/test.py", line 74, in execute 
    super(Command, self).execute(*args, **options) 
    File "/home/circleci/sliderule/venv/lib/python2.7/site-packages/django/core/management/base.py", line 399, in execute 
    output = self.handle(*args, **options) 
    File "/home/circleci/sliderule/venv/lib/python2.7/site-packages/django/core/management/commands/test.py", line 90, in handle 
    failures = test_runner.run_tests(test_labels) 
    File "/home/circleci/sliderule/venv/lib/python2.7/site-packages/django/test/runner.py", line 532, in run_tests 
    old_config = self.setup_databases() 
    File "/home/circleci/sliderule/venv/lib/python2.7/site-packages/django/test/runner.py", line 482, in setup_databases 
    self.parallel, **kwargs 
    File "/home/circleci/sliderule/venv/lib/python2.7/site-packages/django/test/runner.py", line 733, in setup_databases 
    keepdb=keepdb, 
    File "/home/circleci/sliderule/venv/lib/python2.7/site-packages/django/db/backends/base/creation.py", line 219, in clone_test_db 
    self._clone_test_db(number, verbosity, keepdb) 
    File "/home/circleci/sliderule/venv/lib/python2.7/site-packages/django/db/backends/mysql/creation.py", line 48, in _clone_test_db 
    dump_proc = subprocess.Popen(dump_cmd, stdout=subprocess.PIPE) 
    File "/usr/local/lib/python2.7/subprocess.py", line 390, in __init__ 
    errread, errwrite) 
    File "/usr/local/lib/python2.7/subprocess.py", line 1024, in _execute_child 
    raise child_exception 
OSError: [Errno 2] No such file or directory 
Exited with code 1 

答えて

0

私はそれを再現することができをして

sys.stderr.write("dump_cmd: %r" % dump_cmd) 

を追加することによって、私のUbuntuの容器の中に問題をデバッグ〜site-packages/django/db/backends/mysql/creation.pyとそれは私に与えた

dump_cmd: ['mysqldump', '--user=root', '--password=pass', '--host=db', '--port=3306', 'test'] 

おそらくあなたのコンテナにはがありません。これは簡単なsudo apt-get install mysql-clientで修正されました。

関連する問題