Unit testing Meteor中的单元测试应该放在哪里?
有没有一个地方可以让我的测试不用Meteor运行? 我刚刚开始了我的第一个Meteor项目,并开始用和编写单元测试。虽然mocha运行时没有问题,但测试阻止Meteor启动,因为它在使用节点的Unit testing Meteor中的单元测试应该放在哪里?,unit-testing,meteor,mocha.js,should.js,Unit Testing,Meteor,Mocha.js,Should.js,有没有一个地方可以让我的测试不用Meteor运行? 我刚刚开始了我的第一个Meteor项目,并开始用和编写单元测试。虽然mocha运行时没有问题,但测试阻止Meteor启动,因为它在使用节点的require而不是\uuuMeteor\uuuu bootstrap.require()时出现问题 也就是说,Meteor不应该运行我的测试!根据,代码只能放置在客户端、服务器或两者上。单元测试套件不属于这些类别,Meteor缺乏一个用于放置自动测试的定义良好的位置,这让我感到困惑 现在,我的测试保存在服
require
而不是\uuuMeteor\uuuu bootstrap.require
()时出现问题
也就是说,Meteor不应该运行我的测试!根据,代码只能放置在客户端、服务器或两者上。单元测试套件不属于这些类别,Meteor缺乏一个用于放置自动测试的定义良好的位置,这让我感到困惑
现在,我的测试保存在服务器/test/
中,每个文件的内容都包装在块中:
if (typeof(Meteor) === 'undefined') { ... }
虽然这样做有效,但感觉并不优雅。对于使用Meteor应用程序构建测试,您还有其他建议吗
更新:代替Meteor文档中的明确说明,我遵循了(第4段),使用名为
test
的文件夹存储我的测试资产。后来我将其移动到了服务器/test
,因为我不想将其加载到客户端。将测试放在测试/
文件夹中。与Rails不同,Meteor使用名为test
的文件夹作为此目的,Meteor使用复数tests
作为此文件夹名称
存储在名为“tests”文件夹中的资产将被Meteor完全忽略;这些资产将不会加载到客户端或服务器上
具有讽刺意味的是,有人向我通风报信,他们希望自己的测试由Meteor客户端加载。从0.6.0开始,一个有趣的方法是专门为你的应用程序使用本地智能软件包,可以使用Meteor的tinytest轻松测试。您将拥有智能软件包之外的最低代码来引导您的应用程序
编辑:我已经完成了这种方法,我甚至不需要驻留在智能包之外的最小代码。整个应用程序都是软件包。将您的测试文件放在
tests
文件夹中,您应该会没事的。如果应用程序中有多个文件嵌套在server
或client
文件夹中,则可以在tests/client
或tests/server
目录中复制类似的文件夹结构。这不是一条规则,但我认为它有助于维护,我有过花费数小时调试缺失类错误的经验,这一错误通过在测试文件夹中组织文件结构得到解决。因为这是2012年的问题,这里没有一个全面的答案,所以我想在这里尝试一个
这是一个开始考虑测试流星项目的好机会
简而言之
步骤1:流星添加sanjo:jasmine
步骤2:meteor添加速度:html reporter
当您执行此操作时,如果您的应用程序正在运行(或当您启动应用程序重新运行时),在浏览器的右上角,即您打开应用程序的位置,您将开始看到一个闪烁的点。就这样。现在您已经准备好了测试框架
现在,您也可以在这个框架的帮助下实际生成目录结构。当你点击这个闪烁的点时,你会看到一个弹出窗口,如下所示
这提供了用于生成测试目录结构的方便链接
或者,您可以按如下方式手动执行。
下一件事是决定目录结构
照我说的,你可以这样走
<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
|---茉莉花
|---客户
|---整合
|----my.first.integration.spec.js
|---客户
|---单位
|----my.first.unit.spec.js
|---茉莉花
|---服务器
|---整合
|----my.first.integration.spec.js
|---服务器
|---单位
|----my.first.unit.spec.js
维奥拉,开始写你的茉莉花测试。这些帖子可以进一步帮助你