问题标签 [lua-busted]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
lua - Busted 无法识别某些功能
我正在使用 Busted 框架来测试我的 lua 程序。我有最新的破解版本
user ~ $ busted --version
2.0.rc12-0
我运行了这个程序(它叫做 etl)
goto statement
::statement::
error loading module 'etl' from file './etl.lua':
./etl.lua:6: '=' expected near 'statement'
编辑:我很确定 busted 引用的是 lua 5.1 或 5.2,但我的系统上只有 lua 5.3.3。那么我如何才能识别 5.3.3 呢?
证明我的系统上只有 lua 5.3.3
me ~ $ luaver list
==> Installed versions:
==> lua-5.3.3
更新:我在另一个 luaver 无法识别的文件夹中隐藏了一些不同版本的 lua。我删除了这些,然后每次尝试运行它时都给了我这个:
/usr/local/bin/busted: 3: exec: /usr/bin/lua5.1: not found
然后我转到 /usr/local/bin/busted 中的破坏文件,就像这样
所以我需要把所有这些东西都改成lua5.3。我的 lua 5.3 在 /usr/local/bin 中。我是否只是拿那个文件并开始删除 5.1 的东西并用 5.3 的东西替换它?
unit-testing - 在 Busted 测试期间模拟现有 lua 文件中的方法
我想使用 Busted 为现有的 lua 文件编写单元测试。我想在测试期间换掉一些方法,以便文件使用模拟/存根方法而不是真实方法运行(否则它将失败)。文件调用的一些方法是从其他 lua 库中提取的,我也想模拟这些方法。
如何做到这一点?
任何帮助表示赞赏,谢谢。
unit-testing - Lua中的单元测试本地功能
所以我使用 Busted 为现有的 Lua 文件创建单元测试,尽可能不更改文件中的代码。该文件导入另一个文件,然后将该文件中的各种方法存储在本地函数中,就像这样。
我想在我的测试中监视这些方法,以确保它们在正确的位置被调用。但是,我无法从测试中找到任何方法来做到这一点。我试过简单地模拟出辅助方法,如:
但这不起作用,因为真实文件使用 helper_accept 和 helper_reject 方法,而不是 helper.accept 和 helper.reject。
这可以在不更改代码的情况下完成吗?谢谢。
lua - 如何为返回 ok,err 的函数编写破坏的单元测试?
我有一个 Lua 函数,它返回false
后跟错误消息,并希望使用破坏的测试框架来测试它的行为。现在我这样做有点像这样:
我不喜欢我目前的方法有两点:
- 每个测试是 3 行而不是单个干净的行
- 当第三次测试失败时,busted 只是说这
false
不是预期的真实值,并且从未提及“除以零”错误消息。
有没有办法改进我的测试文件以避免这些问题?
我认为我想做的有点类似于has_error
busted 中的断言,但这似乎只适用于实际引发异常的函数,而不适用于返回false
后跟错误消息的函数。
unit-testing - 使用 Busted 对 Lua 代码进行单元测试时模拟本地导入
我对 Lua 很陌生,我正在尝试测试我在 Nginx 服务器上运行的脚本。我被推荐 Busted 但我似乎无法弄清楚如何模拟一些本地进口。
Lua 代码导入以下内容:
在测试 _spec 文件中,我是这样开始的:
我在fake_http.lua
里面创建了一个文件spec/resty/http
。
但是当我运行一个虚拟测试时,我收到以下错误:
知道我在这里做错了什么吗?
lua - 测试失败并出现错误时如何获取完整的堆栈跟踪?
特别是在开发某种测试驱动时,如果 busted 输出完整的堆栈跟踪以测试因错误而失败的测试,这将非常有用。我似乎找不到允许这样做的失败选项。
有什么方法可以获得完整的堆栈跟踪而不是单行错误消息?
lua - 从 luarocks 运行 busted - 'busted' 不被识别为内部或外部命令
我刚开始学习 Lua(而且对编程/命令行一般都很陌生),我正在尝试从 luarocks 安装 busted(一个测试框架)。当我运行“luarocks install busted”时,它说它已安装,但是当我运行“busted”时,它说它不被识别为命令。我尝试将 busted 的安装位置添加到我的 Path 变量中,但到目前为止这似乎不起作用。目前我正在使用Windows。
这是我得到的错误:
'busted' 不是内部或外部命令、可运行程序或批处理文件。
lua - 有没有办法使用 Lua 的 Busted 测试框架设置看门狗计时器?
我的测试套件中的一个测试用例触发了我的程序中的一个错误,导致它进入无限循环。此错误还会导致程序消耗无限量的内存,因此我的系统很快开始交换到磁盘并且变得非常无响应。
有什么方法可以让我的测试套件杀死运行时间过长和/或消耗过多内存的测试?如果测试套件以“花费太长时间”的错误使这些错误的测试用例失败,而不是让它们失控,我更愿意。
我可以用 Busted 做些什么来防止测试套件陷入这些情况。我宁愿让这个测试用例失败,出现“返回时间太长”的错误,而不是 t
lua - 有没有办法并行运行 Busted 测试套件?
我的 Lua 项目的测试套件在目录中分成多个文件spec/
。有没有办法让 busted 并行运行这些测试?如果我busted
在没有任何参数的情况下调用它,它会按顺序运行所有测试。