繁体   English   中英

测试期间的Django WebServer

[英]Django WebServer During Testing

我正在用Django编写一个复杂的Web应用程序。 有很多组件。 特别是两个,分别是Django服务器(以下称此Server )和一个C ++应用程序服务器(以下称此Calculator ),该ServerServer提供计算。 Server希望完成计算时,它将命令发送到正在监听Calculator的套接字。 像这样:

{
    "command": "doCalculations"
}

现在, Calculator可能需要在不同时间提供不同的信息来完成其工作。 因此,不是将数据直接传递给命令中的Calaculator ,而是由Calculator询问其需要什么。 它通过在Server上调用RESTful API来实现:

https://Server/getStuff?with=arguments

然后, Calculator将使用此调用中的数据进行计算,并使用答案答复Server

当我尝试使用Django的unittest框架进行单元测试时,问题就开始了。 我在测试中设置了一堆数据结构,但是当Server调用Calculator ,它需要在REST API中提供此数据,以便Calculator可以获取所需的数据。 问题在于Django测试框架不会启动Web服务器,如果我手动执行此操作,它将从真实数据库而不是测试用例中读取数据。

有谁知道如何使用外部人员/流程可用的数据运行单元测试?

我希望这是有道理的...

您需要指定要加载到测试类中的灯具。

https://docs.djangoproject.com/en/1.7/topics/testing/tools/#fixture-loading

class MyTest(TestCase):
    fixtures = ['data.json']

    def setUp(self):
        # do stuff

    def tearDown(self):
        # do stuff

可以使用python manage.py dumpdata检索data.json python manage.py dumpdata

它将以JSON格式填充来自主数据库的数据。

data.json应该存在于您正在测试的应用程序的fixtures文件夹中。 (如有必要,创建一个)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM