我正在使用 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 中的破坏文件,就像这样
#!/bin/sh
exec '/usr/bin/lua5.1' -e 'package.path="/home/sam/.luarocks/share/lua/5.1/?.lua;/home/sam/.luarocks/share/lua/5.1/?/init.lua;/usr/local/share/lua/5.1/?.lua;/usr/local/share/lua/5.1/?/init.lua;"..package.path; package.cpath="/home/sam/.luarocks/lib/lua/5.1/?.so;/usr/local/lib/lua/5.1/?.so;"..package.cpath' -e 'local k,l,_=pcall(require,"luarocks.loader") _=k and l.add_context("busted","2.0.rc12-1")' '/usr/local/lib/luarocks/rocks/busted/2.0.rc12-1/bin/busted' "$@"
所以我需要把所有这些东西都改成lua5.3。我的 lua 5.3 在 /usr/local/bin 中。我是否只是拿那个文件并开始删除 5.1 的东西并用 5.3 的东西替换它?