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

Bla*_*oat 21 unit-testing mocha.js meteor should.js

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

我刚刚开始了我的第一个Meteor项目,并开始使用Mochashould.js编写单元测试.虽然mocha运行没有问题,但测试阻止Meteor启动,因为它使用节点require 而不是__meteor_bootstrap__.require(完整错误消息)有问题.

话虽这么说,Meteor不应该运行我的测试!根据Meteor文档,代码只能放在客户端,服务器或两者上.单元测试套件不属于这些类别,并且我不是唯一被Meteor缺乏定位自动化测试位置的人所困惑的.

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

if (typeof(Meteor) === 'undefined') { ... }
Run Code Online (Sandbox Code Playgroud)

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

更新:代替Meteor文档中的显式指令,我遵循Rails文件夹约定(第4段),使用一个名为test存储我的测试资产的文件夹.后来server/test我把它移到了,因为我不希望它加载到客户端上.

Bla*_*oat 18

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

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

具有讽刺意味的是,有人提出相反的问题,希望他们的测试由Meteor客户端加载.

  • 此问题已在官方流星文档的["构建您的应用程序"](http://docs.meteor.com/#structuringyourapp)部分中记录. (5认同)