单元测试应放在Meteor中的哪个位置?

时间:2012-08-02 21:16:10

标签: unit-testing meteor mocha should.js

我的测试可以在没有Meteor运行的情况下生存吗?

我刚刚开始了我的第一个Meteor项目,并开始使用Mochashould.js编写单元测试。尽管mocha运行没有问题,但测试阻止Meteor启动,因为它使用节点require而不是__meteor_bootstrap__.requirefull error message)时出现问题。

话虽如此, Meteor不应该运行我的测试!根据Meteor documentation,代码只能放在客户端,服务器或两者上。单元测试套件不属于这些类别,并且我对Meteor缺乏明确定位的自动化测试位置感到困惑。

现在,我的测试保存在server/test/中,每个文件的内容都包含在块中:

if (typeof(Meteor) === 'undefined') { ... }

虽然这有效,但感觉并不优雅。您对使用Meteor应用程序构建测试有任何其他建议吗?

更新:代替Meteor文档中的明确说明,我按照not the only person(第4段),使用名为test的文件夹存储我的测试资产。我之后将其移至server/test,因为我不想在客户端加载它。

4 个答案:

答案 0 :(得分:18)

将您的测试放在tests/文件夹中。与为此目的使用名为test的文件夹的Rails不同,Meteor使用复数tests作为此文件夹名称。

Meteor将完全忽略存储在名为“tests”的文件夹中的资产;这些资产不会加载到客户端服务器上。

具有讽刺意味的是,有人opposite issue希望Meteor客户端加载测试的人会向我倾斜。

答案 1 :(得分:2)

从0.6.0开始,一个有趣的方法是专门为您的应用程序使用本地智能软件包,可以使用Meteor的最小版本轻松测试。您可以使用智能包之外的最小代码来引导您的应用程序。

编辑:我已经完成了这种方法,我甚至不需要在智能包之外存在的最小代码。整个应用程序都是包。

答案 2 :(得分:1)

将您的测试文件放在tests文件夹中,您应该没问题。如果您的应用程序具有嵌套在serverclient文件夹中的多个文件,则可以在tests/clienttests/server目录中复制类似的文件夹结构。不是一个规则,但我认为它有助于维护,我有花费数小时调试缺少类错误的经验,这可以通过在测试文件夹中组织文件结构来解决。

答案 3 :(得分:1)

由于这是2012年的问题,而且这里没有单一的综合答案,我想在这里尝试一下。

这是一个good starting point,用于开始考虑测试您的流星项目。

简而言之     Step1:meteor add sanjo:jasmine     Step2:meteor add velocity:html-reporter

当您执行此操作时,如果您的应用程序正在运行(或每当您启动应用程序重新运行时),在浏览器的右上角 - 您打开应用程序的位置 - 将打开 - 您将开始看到一个闪烁的点。就是这样。您现在已经有了测试框架。

现在,您可以在此框架的帮助下实际生成目录结构。当你点击闪烁的点时,你会看到如下的弹出窗口。

Velocity Test Status

这有用于生成测试目录结构的便利链接。

或者,您可以手动执行以下操作。 接下来要决定目录结构。 Meteor Documentation says enough about it. You need to have tests folder in your project root

here获取提示,你可以这样做。

<projectRoot>
|---jasmine
      |---client
             |--- integration
                      |---- my.first.integration.spec.js
      |---client
             |--- unit
                      |---- my.first.unit.spec.js
|---jasmine
      |---server
             |--- integration
                      |---- my.first.integration.spec.js
      |---server
             |--- unit
                      |---- my.first.unit.spec.js

Viola,开始写你的茉莉花测试。这些帖子可以进一步帮助您。