我有一个可以运行的Node.js Express REST API应用程序。好。
我有一个Mocha / Chai / Supertest模拟测试上面的API应用程序。好。
但我必须启动应用程序,然后独立运行模拟测试。
如何运行启动API应用程序的单个grunt命令,让它启动并运行,然后运行模拟测试?
或者我是否需要在某种测试模式下运行API应用程序(通过env var)并且以某种方式使用仅测试逻辑来调用模拟测试?
我可以尝试一些事情并获得一些工作,但有什么好办法? (避免过度使用短语'最佳实践'。)
答案 0 :(得分:0)
你可以用grunt-express-server和grunt-mocha-test做到这一点,你必须像下面那样设置你的任务:
grunt.registerTask('test', ['express:test', 'mochaTest']);
这将使用您为测试环境设置的配置运行您的快速服务器,然后在运行grunt test
时运行mocha。
由于您使用的是supertest,我认为您正在进行功能测试,这意味着您将使用相同的数据库进行开发和测试(如果您没有嘲笑某些内容)。这可能会耗费时间,并且由于数据不良而导致测试失败。使用两个不同的环境可以确保在运行测试时数据的状态。
如果您不想手动执行此操作,仍然可以使用grunt watch插件重新启动文件更改测试。
希望这有帮助