流星速度黄瓜和茉莉花的共享测试夹具

shared test fixture for meteor velocity cucumber and jasmine

如何在我的黄瓜和茉莉花测试之间共享夹具?

我可以用一个 jasmine 服务器集成测试创建一个夹具,它可以与其他 jasmine 服务器集成测试一起使用。但是(我猜是由于 "mirrors" 不同?)我不能在黄瓜测试中使用相同的夹具。 Mongo 集合没有 jasmine 服务器集成测试创建的数据。

一个选项是将状态保存到一个平面文件,或者 nock,类似于 meteor 之外的东西。但是,为测试装置引用一个公共集合(在同一个镜像上?)会简单得多。这可能吗?

一切皆有可能。但是,我不建议让测试相互依赖。作为 Wikipedia states:

Ideally, each test case is independent from the others.

您的测试应该独立的几个原因:

  • 如果测试失败,更容易缩小问题的范围(如果测试相互依赖,你会有一些测试失败,只是前任失败了)
  • 允许并行化以减少总测试 运行 时间(随着测试套件的增长)

目前 Velocity 为您的应用程序的测试镜像实例硬编码端口 5000,但我知道有人努力使这个端口可配置(必须支持由测试框架本身)。

您可以使用 fixture 的 package-fixture 模式来实现您的要求。看这里:https://github.com/meteor-velocity/velocity#fixtures--test-data

您在包描述符中使用 debugOnly 标志创建的任何包都不会在生产中捆绑。

对此的总结回答是:不支持使用测试工具之间的共享运行时状态(尽管两者都可以从同一个夹具包执行代码)。我要使用的用法不是常规模式,并且涉及测试之间的某种依赖性。

为了得到我想要的东西,我必须 write my own tool。我想要的基本上是一个围绕 nock 的包装器,通过记录我的 e2e 测试结果并打开集成来帮助我生成测试装置。