我一直在研究mean.js测试。这是一个繁琐的测试任务,只需一个简单grunt test
即可运行所有应用,但我不想每次都运行所有测试。
我已经在全球范围内安装了mocha,并希望使用它来运行单个模型的测试,但是要做...
mocha 'app/tests/mymodelname.server.model.js'
把我扔回去了
" MissingSchemaError:尚未为模型注册架构 MyModelName"
为服务器运行单个测试最简单的方法是什么?
谢谢!
d
答案 0 :(得分:1)
之前的回复是完全正确的,有一个mangoose加载器在grunt中定义并传递到'grunt test'任务中。看看 gruntfile.js :grunt.registerTask('test', ['env:test', 'mongoose', 'mochaTest', 'karma:unit']);
我已经四处寻找好的解决方案,并且应该有一个' - grep'开关用于Mocha,但是通过grunt传递它超出了我目前的技能组合 - 建议欢迎!
我确信有一个非常棒的方法可以做到这一点,但是现在我只想限制测试文件配置列表,只想进行一次测试。我已将' config \ assets \ test.js '修改为仅指向一个文件。它不漂亮,我可能会因为它的建议而被烧毁,但它现在对我有效。
答案 1 :(得分:1)
正如robertklep所提到的,最好的方法是使用mocha中的--require选项来要求server.js文件(包括数据库模块和其他东西所需的所有初始化)。
因此,在这种情况下,如果您正在运行一个mean.js应用程序,正确的方法是:
mocha 'app/tests/mymodelname.server.model.js' -r server.js
希望这有帮助!