版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013614126/article/details/82972245
简介
Lua Busted 单元测试框架在笔者电脑上默认输出是有乱码的,因为默认输出格式是 utfTerminal
,有一些特殊字符在普通的 Windows 命令行工具中不能显示。但是它支持多种输出模式,通过指定输出类型可以解决这一问题。
解决方法
默认输出
使用命令:busted
(与 busted -o utfTerminal
等效)
输出:
鈼忊椉鉁
1 success / 1 failure / 1 error / 0 pending : 0.015 seconds
Failure 鈫?spec\sample_spec.lua @ 7
basic test should throw error if assert false
spec\sample_spec.lua:8: Expected to be falsy, but value was:
(string) 'yup'
Error 鈫?spec\sample_spec.lua @ 10
basic test should load module
.\Logic/Utility.lua:328: attempt to index a nil value (global 'UnityEngine')
这是默认的输出形式,因为 windows 命令行不支持而出现乱码。
普通输出
使用命令:busted -o plainTerminal
输出:
+-*
1 success / 1 failure / 1 error / 0 pending : 0.0 seconds
Failure -> spec\sample_spec.lua @ 7
basic test should throw error if assert false
spec\sample_spec.lua:8: Expected to be falsy, but value was:
(string) 'yup'
Error -> spec\sample_spec.lua @ 10
basic test should load module
.\Logic/Utility.lua:328: attempt to index a nil value (global 'UnityEngine')
此时已经没有乱码。
TAP 风格输出
这一风格适合 CI。
使用命令:busted -o TAP
输出:
ok 1 - basic test should pass
not ok 2 - basic test should throw error if assert false
# spec\sample_spec.lua @ 7
# Failure message: spec\sample_spec.lua:8: Expected to be falsy, but value was:
# (string) 'yup'
@C:\local\LuaRocks-3.0.2\systree/share/lua/5.3/busted\outputHandlers\TAP.lua(33,1) not ok 3 - basic test should load module
@C:\local\LuaRocks-3.0.2\systree/share/lua/5.3/busted\outputHandlers\TAP.lua(34,1) # spec\sample_spec.lua @ 10
@C:\local\LuaRocks-3.0.2\systree/share/lua/5.3/busted\outputHandlers\TAP.lua(36,1) # Failure message: .\Logic/Utility.lua:328: attempt to index a nil value (global 'UnityEngine')
1..3
总结
在 Windows 下命令行使用 busted 指定输出格式可以解决乱码问题。