python - 如何在 django 视图中运行测试而不影响数据库
问题描述
我正在尝试Selenium
通过 using 直接从 django 视图运行功能测试(在 python/django 中使用)management.call_command
,以允许用户从网站运行测试。django 视图类似于:
class MyView():
def get(self):
output = call_command('test', 'folder.tests.MyTest')
# doing ./manage.py test folder.tests.MyTest
test_result = 'Test result: ' + output
return something_http_with_test_result
为了不影响当前用户数据,最好的方法是什么?MyTest 将在数据库中创建大量对象,但用户不能看到它们。
谢谢
解决方案
我发现正确运行它的最佳方法是使用 os.system :
import os
dir = 'your_absolute_path_to_project'
class MyView:
def some_func_called():
os.system(dir + '/manage.py test >' + dir + '/log.txt')
该项目和 firefox 必须具有相同的所有者,并且结果将在 log.txt 中。
推荐阅读
- reporting-services - 导出到 excel 添加其他列并合并它们
- python-3.x - 连体网络没有得到训练
- vb.net - vb.net 使用 2 Where 子句更新访问记录
- python - 如何在 python 烧瓶应用程序中安全地共享全局变量(缓存的公共证书)
- graphql - Strapi GraphQL 覆盖
- scala - 如何将一列数据帧映射到 Apache Spark Scala 中的另一列?
- javascript - 使用 find 函数定位兄弟值
- tomcat - systemd 的环境派生用户
- java - JPA:相关记录不会被删除
- ruby - 排除邮政编码时出错