问题标签 [django-tests]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
12525 浏览

django - 如何避免在 django 中创建测试数据库进行测试?

当我运行这些测试用例时,我已经为我的项目编写了一些测试用例,它每次都会为别名“default”创建测试数据库,然后在给出消息后销毁数据库。我只关心消息,所以如何避免创建测试数据库,因为这需要很多时间。

0 投票
1 回答
600 浏览

django - 出现错误:用户名和密码不匹配,尝试测试登录 rest api 时?

下面我尝试为登录 api 编写测试用例,当我在任何类之外编写测试时,它不会给出任何错误,但是当我创建类 class TestCase(TestCase):并定义方法时def test_login(self):。它给出了密码不匹配,但在相同的代码之外成功运行。

在这里我们可以看到消息是成功的不同格式
{"message": "", "result": {"username": "john", "session_key": "xyz"}, "error": 0}

对于不成功
{u'message': u'Username and Password mismatch', u'result': {}, u'error': 1}。每个u变量之前都有。我认为问题就在这里......

0 投票
1 回答
1761 浏览

python - 如何在 django 中测试登录 rest api?

Edit2: 我得到了为什么我收到错误,密码不匹配。这是由于测试数据库本身不包含用户名和密码。

编辑1:

下面我尝试为登录 api 编写测试用例,当我在任何类之外编写测试时,它不会给出任何错误,但是当我创建类 class TestCase(TestCase):并定义方法时def test_login(self):。它给出了密码不匹配,但在相同的代码之外成功运行。

在这里我们可以看到消息是成功的不同格式
{"message": "", "result": {"username": "john", "session_key": "xyz"}, "error": 0}

对于不成功
{u'message': u'username=john and password=xxx Username and Password mismatch', u'result': {}, u'error': 1}

login api 编写如下,但是当我在类 Test_login 中定义 test 时,它不是if part而是 go in else part。在其他部分,我尝试打印用户名和密码以及响应。我收到了类似的回应{u'message': u'username=john and password=xxx Username and Password mismatch', u'result': {}, u'error': 1}

在这里我们可以看到用户名和密码是正确的。为什么它不去if part。我在网上研究得到类似的问题。它提到了同样的问题。因此,据我所知,用户名和密码是正确的。怎么了 ?

后台登录接口

因此,据我所知,用户名和密码是正确的。怎么了 ?

0 投票
2 回答
2011 浏览

python - 如何在 django 中初始化测试数据库?

我正在为我用 django 编写的项目编写测试用例,它给出了一个意想不到的输出,看起来像{u'message': u'', u'result': {u'username': u'john', u'user_fname': u'', u'user_lname': u'', u'cur_time': 1442808291000.0, u'dofb': None, u'sex': u'M', u'u_email': u'', u'role': u'', u'session_key': u'xxhhxhhhx', u'mobile': None}, u'error': 0} 在这里我们可以看到其他字段是空的,因为我刚刚在测试用例中创建了用户,但没有给出其他信息。数据库是从生产数据库创建的,但未初始化,它保持为空。这就是为什么它让其他字段为空。它正在查询空数据库。

我为登录 REST API编写了以下测试用例。并通过python manage.py test运行它。请告诉我如何解决上述问题。

注意:如果以下方法不正确,那么您可以建议其他方法。

0 投票
1 回答
635 浏览

python - 登录测试用例在 Django 1.8 中失败

今天我在学习用Django编写测试用例,并编写了一个用于检查有效用户身份验证的测试用例。

我已经创建了一个username='rakesh'password='ranjan'response即将推出 be False。我对编写测试用例相当陌生,如果有人能告诉我我的test_login功能出了什么问题,我将不胜感激。我还想编写一个测试用例来检查 django URL 是否 403 禁止未经身份验证的用户,以及 403 禁止经过身份验证但不是员工用户。谁能给我一个好的文档。

0 投票
2 回答
2111 浏览

python - 如何在 Django 中使用 LiveServerTestCase 和 Selenium 测试登录功能

我正在为一个项目编写测试用例,并想测试我的登录功能。我正在使用LiveServerTestCase课程,selenium并在 Django 网站 [链接] ( https://docs.djangoproject.com/en/1.8/topics/testing/tools/ ) 中关注此文档。如果你看到下面的代码:

我的用户名是rakesh,密码是ranjan,我想知道为什么下面的代码在这里失败了?我正确地发送了我的参数,但它仍然不接受。

由于在每个测试用例上都会创建一个新数据库,是否也可以在上述代码中创建新用户和密码?我对编写测试用例特别陌生,将不胜感激。

我也无法理解你的意思fixtures = ['user-data.json']

0 投票
1 回答
853 浏览

python - 在 Django 中测试 url 重定向

如果我去http://localhost:8000/login/,将显示登录表单,您必须输入usernamepassword。如果凭据正确,那么您将被重定向到http://localhost:8000/dashboard/. 我在测试时面临的问题是即使我的username并且password是正确的,它也没有重定向到http://localhost:8000/dashboard/,而是转到http://testserver/admin/login/?next=/dashboard/. 我正在使用下面的代码来休息 django 中的重定向功能:

谁能告诉我为什么我被重定向http://testserver/admin/login/?next=/dashboard/http://localhost:8000/dashboard/

在我的settings.py文件中:

我的应用程序运行良好,但我无法测试重定向。谁能给我一些指示我哪里出错了?

如果我打印出来print self.client.login(username='rakesh', password='ranjan')True这意味着我可以登录但为什么不能重定向?

更新:我也尝试使用硒

在这里,我也得到了admin页面的 body.text,但没有得到dashboard页面。

更新 :

仪表板视图:

0 投票
1 回答
1403 浏览

python - 如何在 Django 中进行测试时使用请求库获取状态代码

我正在为我的 Django 应用程序编写测试用例,但我在 Python 中使用 requests 包来访问状态代码,然后使用 assert 语句。此测试用例仅适用于员工用户:

只有员工用户可以访问仪表板,所以我创建了一个员工用户对象。以下行

self.client.login(username='abc', password='1234')即将成为现实。 self.client.get('/dashboard/')如果我打印出这一行,它会显示页面的 html 内容,这意味着我的员工用户可以访问dashboard.

但是当我使用请求模块查看dashboardurl 的状态代码时,它显示status code = 500,并且我的测试失败了。

s = requests.get('http://localhost:8000/dashboard/') print s.status_code

谁能告诉我这里哪里出错了?为什么我的状态码显示为 500,即使员工用户可以访问仪表板并使用print self.client.get('/dashboard/'). 帮助!

0 投票
0 回答
490 浏览

python - 使用 Selenium 测试 Django 应用程序时出现 IntegrityError 错误

我正在使用 selenium 测试一个 django 应用程序,我的代码如下所示:

当我运行这个测试用例时login_staff,我得到一个错误

IntegrityError:唯一约束失败:auth_user.username

因为在开始我的每个测试用例时,我都在创建一个新的数据库和用户实例,那么为什么会出现这个完整性错误呢?有没有办法在这里刷新以前的数据库?知道为什么即使在运行这个测试时创建了一个新数据库,这个错误仍然会出现吗?

0 投票
1 回答
1537 浏览

python - 如何测试视图是否只能由 Django 中的员工用户访问

我正在 Django 中学习测试,并且有一个我想测试的视图。此视图只能由员工用户访问。假设视图是:

如果请求来自员工用户,它应该重定向到存储库,否则我应该得到类似permission denied. 我从类似 in 的东西开始tests.py

问题出在这里我没有将我的请求对象与任何用户相关联,而且我也了解from django.contrib.admin.views.decorators import staff_member_required但不确定如何在这里使用它们。谁能告诉我应该如何测试我的view应该只能被访问staff users