web-dev-qa-db-ja.com

Pycharm-テストは見つかりませんでしたか?

私は取得しています

テストは見つかりませんでした

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を見ましたが、まだ完全に混乱しています。現在の実行構成は次のようになっています。

enter image description here

私は間違っている可能性があることを理解していると思いますか?どんな助けも大歓迎です、ありがとう!

17
ocean800

テスト関数を認識するためには、test_という名前にする必要があります。この場合、xyChecktest_xyCheckに名前変更します:)

25
Joran Beasley

質問が出されてから1年以上が経ちますが、同じ問題があり、その投稿が検索の最初の結果でした。

私が理解したように、PyCharm(またはIntellij Idea Pythonプラグイン)は、ディレクトリ内のすべてのテストを実行するときに起動する場合、次の基準を満たすテストを必要とします。

  1. テスト関数は「test」で始まる必要があります(アンダースコアは不要です)
  2. テストを含むファイルも「test」で始まる必要があります。 「テスト」(大文字のTでは、私の場合は機能しません

Intellij IDEA 2016.3.5 with Pythonプラグインを使用しています

コマンドラインでテストを実行したい場合

python -m unittest

次に、__init__.pyをテストディレクトリに追加する必要があります。 Pythonテスト関数名は「test」で始まり、ファイル名は「test」で始まりますが、ファイルの場合は最初の「t "は大文字かどうかです。TestCaseとtest_caseも同様に問題ありません。

19
Ilya Sazonov

確認したいもう1つの問題は、コンソール出力に「##テストが「-k XXXX」によって選択解除されたが表示されるかどうかです。これは、実行/デバッグ構成にキーワードを追加したことを意味し、Pycharmは名前にキーワードが含まれるテストのみを実行します。

4
Keith

噛みついたもう一つの落とし穴。

上記のすべてのアドバイスに従ったtest_queue.pyというテストパッケージ内にテストファイルがありましたが、PyCharmで[Run UnitTests]を選択すると、コンソールにテストが見つからないと報告されました。

私の場合の問題は、プロジェクトの初期に他の目的で使用され忘れられていたtest_queue.pyと呼ばれる非ユニットテストファイルがプロジェクトのルートにあったことです。

私は自分のテストフォルダーでテストファイルを具体的に選択していましたが、パスはファイルの単体テストバージョンを絶対に指すように設定されていましたが、プロジェクトのルートにあるファイルが使用されていたようです。

したがって、もう1つ確認する必要があります。プロジェクト内に同じ名前の他のファイルがないことを確認してください。

4
Graeme

ファイル名にダッシュ( "-")を使用しないでください。これらのファイルは私のマシンでは無視されていました。それらの名前をproject-tests.pyからproject_tests.pyに変更することで問題は解決しました。

4
invalidusername

将来の誰かを助けることを期待して別の答えを追加します。私はこの問題と闘ってきましたが、答えを見つけました(私は思う)。元々、標準のDjangoファイルtests.pyをアプリケーションフォルダーから削除しました。また、testという別のテストスクリプトを含むプロジェクトのサブディレクトリを作成しました。この状況では、Pycharmが見つかりませんでしたテスト。これを修正するには、アプリケーションフォルダーにtests.pyという空のファイルを作成します。

そう:

  1. アプリケーションディレクタにtests.pyというファイルがあることを確認してください(空のファイルでもかまいません)
  2. プロジェクト内のテストと呼ばれるフォルダーに個別のテストスクリプトを含めることができ、Pycharmはこれらを見つけて実行しているようです。

ここに私のために働いているディレクトリ構造の写真があります:

enter image description here

3
Ben

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

うまくいきました!

0
James Bradbury