通过require in循环调用多个描述
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过require in循环调用多个描述相关的知识,希望对你有一定的参考价值。
所以我有很多关于测试文件的目录,并为其中的每个目录运行脚本。这看起来像:
单元测试
--func1Tests
---- 润.coffee
---- suite group1.coffee
---- suite group2.coffee
--func2Tests
---- 润.coffee
---- suite group1.coffee
---- suite group2.coffee
每个run.coffee包含如下代码:
describe 'func1 tests', ()->
require './suiteGroup1.coffee'
require './suiteGroup2.coffee'
而suiteGroup文件是带有describe,之前/之后的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]
但这也行不通。似乎mocha因为使用glob而没有在所需文件中执行描述。
当然我可以用console命令编写bash脚本,但我更希望通过coffeescript解决这个问题。
我也希望避免硬编码所有运行路径,如下所示:
describe 'all tests', ->
require 'unitTests/func1Tests/run.coffee'
require 'unitTests/func2Tests/run.coffee'
...
那么,如何解决这个问题呢?
好吧,过了一段时间我找到了解决方案。我的错是使用回调。我把glob改成了glob.sync,一切都很完美!
describe 'All tests', ()->
for path in glob.sync "unitTests/*/run.coffee"
require path
似乎mocha在异步代码下不能正常工作。
以上是关于通过require in循环调用多个描述的主要内容,如果未能解决你的问题,请参考以下文章
在 Activity 内部,如何暂停 for 循环以调用片段,然后在按钮单击片段后恢复循环以重新开始
如何让片段中的多个视图调用片段类中声明的相同 onClick 函数?
Python 自动化 - 浏览器chrome打开F12开发者工具自动Paused in debugger调试导致无法查看网站资源问题原因及解决方法,javascript反调试问题处理实例演示(代码片段