【问题标题】:Is there a way to run a Busted test suite in parallel?有没有办法并行运行 Busted 测试套件?
【发布时间】:2023-03-10 19:25:01
【问题描述】:

我的 Lua 项目的测试套件在 spec/ 目录中拆分为多个文件。 有没有办法让 busted 并行运行这些测试?如果我在没有任何参数的情况下调用busted,它会按顺序运行所有测试。

【问题讨论】:

    标签: lua lua-busted


    【解决方案1】:

    似乎可行的一件事是使用GNU Parallel 一次运行多个测试脚本。

    parallel busted -o utfTerminal ::: spec/*_spec.lua
    

    -o utfTerminal 是告诉 busted 使用熟悉的“绿色圆圈”输出,而不是在重定向其 stdout 时使用的简化文本输出。

    【讨论】:

      【解决方案2】:

      我对 Busted 库不太了解,但显然您想要的是使用 多线程

      线程基本上是代码逐行执行直到结束的过程。当我们为一个代码创建多个线程时,多个循环、函数等……在这个新的Thread中,它们与原代码同时执行,不干扰进程,即中执行了不止一件事情并行。

      不幸的是,Lua 不包含执行多线程的方法,它与线程一起工作的最多的是协程。但是,有像 lua-llthreads 这样的库可以执行此任务,请尝试一下,看看您的想法。通过将它与 Busted 的代码相结合,您将能够执行并行任务

      【讨论】:

      • 我想将它作为单独的进程而不是线程运行会更容易。但是,我不知道如何在不弄乱标准输出的情况下做到这一点,每个进程都在同时说话。
      • @hugomg 您可以尝试创建一个新的 Lua 脚本,并在不同的脚本中分别运行每个脚本,例如 os.execute():您将每个脚本分成 script1.luascript2.lua 和 @987654325 @,然后你创建一个所谓的execute.lua 并执行:os.execute("lua script1.lua") os.execute("lua script2.lua") os.execute("lua script3.lua") 你也可以使用io.popen() 但它通常用于从 cmd 收集一些回报。
      • @hugomg 我设法解决了您的问题和/或澄清了您的问题?
      猜你喜欢
      • 2014-05-16
      • 1970-01-01
      • 1970-01-01
      • 2011-02-24
      • 2013-04-25
      • 2010-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多