Django使用ElasticSearch进行测试

时间:2017-09-03 23:31:10

标签: django elasticsearch

我知道这个问题已被多次询问,许多人建议将集成测试与单元测试分开。

但是有没有一个插件/包来创建新的ES索引,模仿Django如何为运行测试创建一个新的空数据库?

理论上听起来不是那么难吗?一个创建新索引的包,例如。 test_index_201709011234对应于事务测试用例,并在测试运行后删除这些索引。

1 个答案:

答案 0 :(得分:1)

我写了这个确切的问题。高层解决方案是:

  1. 通过docker-compose运行一个单独的Elasticsearch集群。
  2. 在每次测试之前,运行es.indices.createes.index来索引测试Elasticsearch集群上的相关资源。
  3. 每次测试后,运行es.indices.delete并清理资源。

您可以在https://yanglinzhao.com/posts/test-elasticsearch-in-django处阅读详细信息,而我在https://github.com/yanglinz/django-pytest-elasticsearch-example处有一个有效的示例。