PyCharm - no tests were found?

Viewed 45665

I've been getting na error in PyCharm and I can't figure out why I'm getting it:

No tests were found

This is what I have for my 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)

and this point.py, what I'm trying to test:

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)

Is it something wrong with my run configuration? I looked at this SO post but I'm still utterly confused. My run configuration currently looks like this:

screenshot of run configuration

9 Answers

One thing that can also cause this problem is if you have not selected the right testing framework in your settings:

settings > Python Integrated Tools > Testing > Default test runner

All my tests are in pytest, but it was set to unit test

Don't use dashes ("-") in your filename. These files were being ignored on my machine. renaming them from project-tests.py to project_tests.py solved the problem.

Adding another answer in the hopes that it helps someone down the road. I've been fighting this problem and just figured out the answer (I think). I originally deleted the standard Django file tests.py out of my application folder. I also created a subdirectory of my project called tests, which contains separate test scripts. In this situation, Pycharm failed to find the tests. I corrected this simply by creating an empty file called tests.py in my application folder.

So:

  1. Make sure you have a file called tests.py in your application director (it can be an empty file)
  2. It seems that a folder called tests, in your project, can contain separate test scripts and Pycharm seems to find and run these.

Here's a picture of the directory structure that's working for me:

enter image description here

I had this exception when running individual tests in a Django 1.8 project in PyCharm 2018.1. I could run all the tests together, but individual tests in one file crashed.

The exception was happening in unittest's loader.py

It was getting an ImportError trying to import test_admin_views.py, though the exception was hiding the details of that error.

To see the details of the ImportError, I opened a Python Console and ran:

import my_app.users.tests.test_admin_views

This gave me:

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

I noticed that some of the other factories in that file are imported without using the full path, so I tried adding ApplicationFactory to the relative path import list:

from .model_factories import UserFactory, UserGroupFactory, ApplicationFactory

Which worked!

None of these helped me, but I was able to fix the issue by setting the working directory to the project directory.

I debugged this by first creating a new Django test configuration witj a target of one of the app names with tests.

That ran successfully. No idea why working directory should need to be specified.

Related