【发布时间】:2019-03-22 06:53:37
【问题描述】:
所以我有很多包含测试文件的目录,并为其中的每个目录运行脚本。 这看起来像:
单元测试
--func1Tests
---- run.coffee
----suiteGroup1.coffee
----suiteGroup2.coffee
--func2Tests
---- run.coffee
----suiteGroup1.coffee
----suiteGroup2.coffee
每个 run.coffee 都包含如下代码:
describe 'func1 tests', ()->
require './suiteGroup1.coffee'
require './suiteGroup2.coffee'
suiteGroup 文件是带有 describe、before/after 和 it 的 BDD mocha 测试。
所以在控制台中,我通过带有通配符的命令运行所有测试(例如 mocha ./unitTests/*/run.coffee)
我想通过要求运行脚本的路径(我通过 glob 获得的路径)以编程方式运行所有测试。
describe 'All tests', ()->
glob "unitTests/*/run.coffee", (err, files)->
for path in files
require path
但这不起作用。我也试过这个。
describe 'All tests', ()->
glob "unitTests/*/run.coffee", (err, files)->
require files[0]
但这也不起作用。由于使用 glob,似乎 mocha 没有在所需文件中执行描述。
当然我可以用控制台命令编写 bash 脚本,但我更喜欢通过 coffeescript 解决这个问题。
我也希望避免像这样对所有运行路径进行硬编码:
describe 'all tests', ->
require 'unitTests/func1Tests/run.coffee'
require 'unitTests/func2Tests/run.coffee'
...
那么,如何解决这个问题呢?
【问题讨论】:
标签: javascript coffeescript mocha.js qa