1. ホーム
  2. testing

[解決済み] PylonsでNoseを使って単体テストを実行する方法

2022-04-27 01:45:16

質問

Pylons 1.0のアプリで、test/functionalディレクトリにたくさんのテストがあります。 変なテスト結果が出るので、1つのテストだけを実行したいのですが、どうすればいいですか? noseのドキュメントには、コマンドラインでテスト名を渡すことができるはずだと書かれていますが、何をやってもImportErrorsが発生します。

例えば

nosetests -x -s sometestname

与える。

Traceback (most recent call last):
  File "/home/ben/.virtualenvs/tsq/lib/python2.6/site-packages/nose-0.11.4-py2.6.egg/nose/loader.py", line 371, in loadTestsFromName
   module = resolve_name(addr.module)
  File "/home/ben/.virtualenvs/tsq/lib/python2.6/site-packages/nose-0.11.4-py2.6.egg/nose/util.py", line 334, in resolve_name
   module = __import__('.'.join(parts_copy))
ImportError: No module named sometestname

についても同じエラーが発生します。

nosetests -x -s appname.tests.functional.testcontroller

正しい構文は何ですか?

どのように解決するのですか?

nosetests appname.tests.functional.test_controller という名前のファイルであれば、動作するはずです。 test_controller.py .

特定のテストクラスとメソッドを実行するには、次のようなパスを使用します。 module.path:ClassNameInFile.method_name つまり、モジュール/ファイルのパスとファイル内のオブジェクトをコロンで区切ってください。 module.path はファイルへの相対パス(例えば tests/my_tests.py:ClassNameInFile.method_name ).