如何在Django视图中运行测试而不影响数据库

时间:2019-07-05 14:20:00

标签: python django testing command

我试图通过使用Selenium从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将在数据库中创建很多对象,但用户不得看到它们。

谢谢

1 个答案:

答案 0 :(得分:0)

我发现正确运行它的最好方法是使用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中。