【发布时间】:2023-03-10 19:25:01
【问题描述】:
我的 Lua 项目的测试套件在 spec/ 目录中拆分为多个文件。
有没有办法让 busted 并行运行这些测试?如果我在没有任何参数的情况下调用busted,它会按顺序运行所有测试。
【问题讨论】:
标签: lua lua-busted
我的 Lua 项目的测试套件在 spec/ 目录中拆分为多个文件。
有没有办法让 busted 并行运行这些测试?如果我在没有任何参数的情况下调用busted,它会按顺序运行所有测试。
【问题讨论】:
标签: lua lua-busted
似乎可行的一件事是使用GNU Parallel 一次运行多个测试脚本。
parallel busted -o utfTerminal ::: spec/*_spec.lua
-o utfTerminal 是告诉 busted 使用熟悉的“绿色圆圈”输出,而不是在重定向其 stdout 时使用的简化文本输出。
【讨论】:
我对 Busted 库不太了解,但显然您想要的是使用 多线程
线程基本上是代码逐行执行直到结束的过程。当我们为一个代码创建多个线程时,多个循环、函数等……在这个新的Thread中,它们与原代码同时执行,不干扰进程,即中执行了不止一件事情并行。
不幸的是,Lua 不包含执行多线程的方法,它与线程一起工作的最多的是协程。但是,有像 lua-llthreads 这样的库可以执行此任务,请尝试一下,看看您的想法。通过将它与 Busted 的代码相结合,您将能够执行并行任务
【讨论】:
os.execute():您将每个脚本分成 script1.lua、script2.lua 和 @987654325 @,然后你创建一个所谓的execute.lua 并执行:os.execute("lua script1.lua") os.execute("lua script2.lua") os.execute("lua script3.lua") 你也可以使用io.popen() 但它通常用于从 cmd 收集一些回报。