Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing Meteor中的单元测试应该放在哪里?_Unit Testing_Meteor_Mocha.js_Should.js - Fatal编程技术网

Unit testing 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缺乏一个用于放置自动测试的定义良好的位置,这让我感到困惑 现在,我的测试保存在服

有没有一个地方可以让我的测试不用Meteor运行?

我刚刚开始了我的第一个Meteor项目,并开始用和编写单元测试。虽然mocha运行时没有问题,但测试阻止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
维奥拉,开始写你的茉莉花测试。这些帖子可以进一步帮助你


此问题已在官方meteor文档的部分中记录。这需要升级。我相信现在流星速度和茉莉花是不错的选择。