PyCharm 3.1 で NoseTestSuiteRunner が実行できない対応

PyCharm 3.1 Professional Edition 133.804 build での話。Mac 環境。

Django の settings.py で TEST_RUNNER = 'django_nose.NoseTestSuiteRunner' と Test Runner を設定して django_nose を使ってテストを実行するようにしている場合に、PyCharm からテストが実行できなくなった。実行すると以下のエラーが出る。

Traceback (most recent call last):
  File "/Applications/PyCharm.app/helpers/pycharm/django_test_manage.py", line 18, in
    import django_test_runner
  File "/Applications/PyCharm.app/helpers/pycharm/django_test_runner.py", line 12, in
    from nose_utils import TeamcityNoseRunner
ImportError: No module named nose_utils

/Applications/PyCharm.app/helpers/pycharm/django_test_runner.py のファイルの 9 行目付近を以下のように修正すると実行できるようになった。

if hasattr(settings, "TEST_RUNNER") and "NoseTestSuiteRunner" in settings.TEST_RUNNER:

    # この2行を追加
    import os.path
    sys.path.insert(0, os.path.dirname(__file__))

    from nose_utils import TeamcityNoseRunner

このモジュール内の 5 行目の adjust_django_sys_path() が悪さをしているような気はしている。Issue Tracker に似たようなテスト関連のバグは登録されているので近いうちに解決してくれるといいのだが。

Last updated on July 7, 2015