我有一個Django應用程序,工作正常。當我使用pytest運行測試時,它只能與實用程序類一起工作(所以不是與Django相關的)。pytest無法訪問Django類
例如,軟件包A從該軟件包或其他軟件調用實用程序類的測試工作正常。 但是,只要我導入一個django類,我就會面臨錯誤。
例如1: 導入我的模型(測試),以開始測試類:
from app.common.models import Country
- >導入錯誤:沒有模塊名爲django.db
[Django的.db在models.py中調用]
示例2:我導入一個url解析器(在測試中),啓動測試類:
from django.core.urlresolvers import reverse
- >導入錯誤:沒有模塊名爲django.core.urlresolvers
第一次嘗試修復
繼另一個話題,我設置PYTHONPATH的內容:
/home/user/pyenv/lib/python3.5/site-packages
此文件夾包含instal在virtualenv:django,pytest,psycopg2,以及更多的領導包。 1)如果我將DJANGO_SETTINGS_MODULE設置爲與應用程序相同的文件,則「py.test」會給出以下結尾的錯誤: 文件「/home/user/pyenv/lib/python3.5/site-packages/django /db/backends/postgresql/base.py」,第24行,在 提高ImproperlyConfigured( 「錯誤加載psycopg2模塊:%S」 %E)
2)如果我設置DJANGO_SETTINGS_MODULE到較小的測試設定值文件,包含只有數據庫的相關信息,我面對不同的錯誤(self.client在測試失敗):
class Test(unittest.TestCase):
def testUrls(self):
response = self.client.get('/countries/all/get')
self.assertEqual(response.status_code, 200)
- > AttributeError的: '測試'對象沒有屬性 '客戶'
更多的相關信息:
1)Python解釋,爲應用程序,位於一個的virtualenv。
2)conftest.py位於應用程序的根文件夾,所以相同的位置manage.py,並具有以下內容:
import os
import sys
sys.path.append(os.path.dirname(__file__))
3)pytest.ini位於同一文件夾中管理。PY也與此內容:
[pytest]
python_files = test_*.py test*.py
4)最重要的是:應用程序正常工作,所以DB設置有效
如果你有什麼是錯的,以及如何測試Django的類,任何任何想法想法會受到歡迎。先謝謝你。