2013-12-26 3 views
0

По какой-то странной причине я не могу понять, как только я запустил тест в приложении в PyCharm, Pycharm не будет тестировать дополнительные теги TestCases, которые я добавляю, даже после того, как я их добавлю.PyCharm не тестирует все тесты Django

Например, ниже у меня был набор тестов в модуле, который я тестировал, а затем я добавил тестовую таблицу What и снова запустил тесты, но этот новый тест не был запущен вообще!

Тесты файла:

from django.test import TestCase 
from django.contrib.staticfiles import finders 
from django.contrib.staticfiles.storage import staticfiles_storage 
import os 

class SimpleTest(TestCase): 
    def test_basic_addition(self): 
     """ 
     Tests that 1 + 1 always equals 2. 
     """ 
     self.assertEqual(1 + 1, 2) 

class SettingsTest(TestCase): 
    def settings_loaded(self): 
     self.assertIsNotNone(os.getenv('DJANGO_SETTINGS_MODULE')) 

class HomePageTestCase(TestCase): 
    def test_index(self): 
     resp = self.client.get('/') 
     self.assertEqual(resp.status_code, 200) 

    def static_loaded(self): 
     abs_path = finders.find('bootstrap.css') 
     self.assertTrue(staticfiles_storage.exists(abs_path)) 

    def get_favicon(self): 
     # abs_path = finders.find('favicon.ico') 
     resp=self.client.get('/static/favicon.ico') 
     self.assertEqual(resp.status_code, 200) 

class TeamPageCase(TestCase): 
    def test_loads(self): 
     resp = self.client.get('/team/') 
     self.assertEqual(resp.status_code, 200) 

class FAQPageCase(TestCase): 
    def test_loads(self): 
     resp=self.client.get('/faq/') 
     self.assertEqual(resp.status_code, 200) 

class What(TestCase): 
    def doit(self): 
     self.assertEqual(3,3) 

На скриншоте ниже, вы можете увидеть, что запускались только четыре TestCases - пятый никогда не трогали, по какой-то причине.

PyCharm testing suite screenshot

Почему это происходит? Как я могу заставить PyCharm запускать все мои тестовые примеры? Нужно ли что-то обновлять или запускать команду testsync ... или что-то в этом роде?

ответ

2

Ваш скриншот показывает, что четыре теста запускаются, у вас есть в общей сложности восемь тестов.

Пробег - четыре испытания, которые вы назвали def test_....

"A testcase is created by subclassing unittest.TestCase. The three individual tests are defined with methods whose names start with the letters test. This naming convention informs the test runner about which methods represent tests."

Переименуйте тесты, которые не работает с test_ впереди.

+0

Спасибо - определенно пропустил эту часть документации. – jdotjdot

Смежные вопросы