从单个grunt命令运行app和模拟测试的Gruntfile

时间:2014-10-03 22:09:45

标签: node.js gruntjs mocha chai supertest

我有一个可以运行的Node.js Express REST API应用程序。好。

我有一个Mocha / Chai / Supertest模拟测试上面的API应用程序。好。

但我必须启动应用程序,然后独立运行模拟测试。

如何运行启动API应用程序的单个grunt命令,让它启动并运行,然后运行模拟测试?

或者我是否需要在某种测试模式下运行API应用程序(通过env var)并且以某种方式使用仅测试逻辑来调用模拟测试?

我可以尝试一些事情并获得一些工作,但有什么好办法? (避免过度使用短语'最佳实践'。)

1 个答案:

答案 0 :(得分:0)

你可以用grunt-express-server和grunt-mocha-test做到这一点,你必须像下面那样设置你的任务:

grunt.registerTask('test', ['express:test', 'mochaTest']);

这将使用您为测试环境设置的配置运行您的快速服务器,然后在运行grunt test时运行mocha。

由于您使用的是supertest,我认为您正在进行功能测试,这意味着您将使用相同的数据库进行开发和测试(如果您没有嘲笑某些内容)。这可能会耗费时间,并且由于数据不良而导致测试失败。使用两个不同的环境可以确保在运行测试时数据的状态。

如果您不想手动执行此操作,仍然可以使用grunt watch插件重新启动文件更改测试。

希望这有帮助