私は取得しています
テストは見つかりませんでした
pycharmでエラーが発生し、なぜそれを取得しているのかわかりません...これが私のpoint_test.py
:
import unittest
import sys
import os
sys.path.insert(0, os.path.abspath('..'))
from ..point import Point
class TestPoint(unittest.TestCase):
def setUp(self):
pass
def xyCheck(self,x,y):
point = Point(x,y)
self.assertEqual(x,point.x)
self.assertEqual(y,point.y)
この point.py
、私がテストしようとしているもの:
import unittest
from .utils import check_coincident, shift_point
class Point(object):
def __init__(self,x,y,mark={}):
self.x = x
self.y = y
self.mark = mark
def patched_coincident(self,point2):
point1 = (self.x,self.y)
return check_coincident(point1,point2)
def patched_shift(self,x_shift,y_shift):
point = (self.x,self.y)
self.x,self,y = shift_point(point,x_shift,y_shift)
実行構成に何か問題がありますか? this SO postを見ましたが、まだ完全に混乱しています。現在の実行構成は次のようになっています。
私は間違っている可能性があることを理解していると思いますか?どんな助けも大歓迎です、ありがとう!
テスト関数を認識するためには、test_
という名前にする必要があります。この場合、xyCheck
をtest_xyCheck
に名前変更します:)
質問が出されてから1年以上が経ちますが、同じ問題があり、その投稿が検索の最初の結果でした。
私が理解したように、PyCharm(またはIntellij Idea Pythonプラグイン)は、ディレクトリ内のすべてのテストを実行するときに起動する場合、次の基準を満たすテストを必要とします。
Intellij IDEA 2016.3.5 with Pythonプラグインを使用しています
コマンドラインでテストを実行したい場合
python -m unittest
次に、__init__.py
をテストディレクトリに追加する必要があります。 Pythonテスト関数名は「test」で始まり、ファイル名は「test」で始まりますが、ファイルの場合は最初の「t "は大文字かどうかです。TestCaseとtest_caseも同様に問題ありません。
確認したいもう1つの問題は、コンソール出力に「##テストが「-k XXXX」によって選択解除されたが表示されるかどうかです。これは、実行/デバッグ構成にキーワードを追加したことを意味し、Pycharmは名前にキーワードが含まれるテストのみを実行します。
噛みついたもう一つの落とし穴。
上記のすべてのアドバイスに従ったtest_queue.py
というテストパッケージ内にテストファイルがありましたが、PyCharmで[Run UnitTests]を選択すると、コンソールにテストが見つからないと報告されました。
私の場合の問題は、プロジェクトの初期に他の目的で使用され忘れられていたtest_queue.py
と呼ばれる非ユニットテストファイルがプロジェクトのルートにあったことです。
私は自分のテストフォルダーでテストファイルを具体的に選択していましたが、パスはファイルの単体テストバージョンを絶対に指すように設定されていましたが、プロジェクトのルートにあるファイルが使用されていたようです。
したがって、もう1つ確認する必要があります。プロジェクト内に同じ名前の他のファイルがないことを確認してください。
ファイル名にダッシュ( "-")を使用しないでください。これらのファイルは私のマシンでは無視されていました。それらの名前をproject-tests.pyからproject_tests.pyに変更することで問題は解決しました。
将来の誰かを助けることを期待して別の答えを追加します。私はこの問題と闘ってきましたが、答えを見つけました(私は思う)。元々、標準のDjangoファイルtests.pyをアプリケーションフォルダーから削除しました。また、testという別のテストスクリプトを含むプロジェクトのサブディレクトリを作成しました。この状況では、Pycharmが見つかりませんでしたテスト。これを修正するには、アプリケーションフォルダーにtests.pyという空のファイルを作成します。
そう:
ここに私のために働いているディレクトリ構造の写真があります:
PyCharm 2018.1のDjango 1.8プロジェクトで個々のテストを実行すると、この例外が発生しました。すべてのテストを一緒に実行できましたが、1つのファイルの個々のテストがクラッシュしました。
Unittestのloader.pyで例外が発生していました
Test_admin_views.pyをインポートしようとしてImportErrorが発生していましたが、例外はそのエラーの詳細を隠していました。
ImportErrorの詳細を確認するために、Python Consoleを開いて実行しました:
import my_app.users.tests.test_admin_views
これは私に与えた:
Traceback (most recent call last):
[...]
File "my_app/my_app/users/tests/model_factories.py", line 42, in <module>
from my_app.applications.tests.model_factories import ApplicationFactory
ImportError: cannot import name ApplicationFactory
そのファイル内の他のファクトリーのいくつかがフルパスを使用せずにインポートされることに気づいたので、相対パスのインポートリストにApplicationFactoryを追加しようとしました:
from .model_factories import UserFactory, UserGroupFactory, ApplicationFactory
うまくいきました!