【问题标题】:How to run parallel tests with AVA and Mongoose如何使用 AVA 和 Mongoose 运行并行测试
【发布时间】:2016-08-23 11:34:06
【问题描述】:

基于处理并发和原子测试的讨论 (https://github.com/avajs/ava/issues/472)

我想要最好的方法来并行测试我的服务器端点。

我正在使用 koajs 服务器和 mongodb 数据库(猫鼬)

我正在尝试使用 Mockgoose (https://github.com/mccormicka/Mockgoose) 创建一个不会持久化数据的临时内存中的 mongod

我想知道为每个测试创建一个单独的数据库是否是一个好方法?

有这方面的例子吗?

【问题讨论】:

  • 在单独的文件中编写测试时,您没有从 Ava 获得并行性吗?
  • 我们需要一个不同的数据库和服务器让每个测试在其他测试中没有副作用
  • 是的,我认为在每个测试文件的 before 处理程序中使用单独的 Mockgoose 实例没有问题。看起来 Mockgoose 在建立连接时会自动创建一个数据库?
  • 你试过before而不是beforeEach吗?我想我不确定为什么不能在测试之前初始化模拟数据库并串行运行测试。如果您需要为每个测试清理数据库,您可以在beforeEach 中执行此操作。但是您的实际数据库连接和实例应该在所有测试之前完成一次。使用 Ava 的串行标志来确保连接不被滥用。

标签: node.js testing mongoose mocking ava


【解决方案1】:

不是针对 AVA,而是针对 Jest,您可以使用 Jest testEnvironment 设置创建一个新环境,使用库 mongodb-memory-server 为每个测试构建一个 mongodb 数据库。

我在这里写了更多详细信息:https://itnext.io/parallel-testing-a-graphql-server-with-jest-44e206f3e7d2

【讨论】:

    【解决方案2】:

    棘手。我做了一个模块来处理这个 - https://github.com/cyberwombat/mongoprime

    它通过在内存中使用 mongo 并创建代理来工作。在您的测试中,您将创建一个随机数据库名称,该模块将负责为您创建和加载/清除这些按需数据库。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-06
      • 2021-01-16
      • 1970-01-01
      • 2021-07-16
      • 1970-01-01
      • 1970-01-01
      • 2020-09-30
      • 2017-10-03
      相关资源
      最近更新 更多