hchunhui / librime-lua

Extending RIME with Lua scripts
BSD 3-Clause "New" or "Revised" License
303 stars 43 forks source link

使用 luaunit test 測試 librime-lua api #220

Open shewer opened 1 year ago

shewer commented 1 year ago

安裝 下載 luaunit.lua https://github.com/bluebird75/luaunit --> lua/tools/luaunit.lua 文件 https://luaunit.readthedocs.io/en/latest/#output-formats

製作 test 環境 rime_api_console or rime_console user.yaml -- 預設指定 lua_test.schema.yaml lua_test.schema.yaml 測試方案 cp cangjie5.schema.yaml -->lua_test.schema.yaml lua/lua_test.lua 測試環境 lua/test/xxxxx.lua 測試檔

-- rime.lua
.....
lua_test = require 'lua_test'  -- 載入 lua_processor@lua_test 
# lua_test.schema.yaml
schema/schema_id: lua_test
engine/processor/@after 0: lua_processor@lua_test
#default.yaml
schema_list:
   - schema: lua_test # <---- 加入 測試方案
   - schema: luna_pinyin
   - schema: cangjie5
# user.yaml
previously_selected_schema: lua_test  # 預設指定 lua_test.schema.yaml
......
--  
local function _test(env,test_list,exit_,format)
  local lu = require 'tools/luaunit'
  _G['env'] = env
  format = format or 'tap'

  local lu=require 'tools/luaunit'
  lu.LuaUnit:runSuiteByInstances(test_list or {},format)

  _G['env'] = nil
  if exit_ then
    os.exit()
  end
end
--[[
print('------pre_test witout env.engine -----')
local pretest_list={
  {'test_list', require 'test/list_test'},
}

_test(nil, pretest_list)
--]]

local M={}
function M.init(env)

 local M={}
 function M.init(env)
   print('-----test with env.engine -----')
   local test_list={
     {'test_translator', require 'test/test_translator'},  -- 測試檔
   }
   _test(env,test_list,true)
 end

 function M.fini(env)
 end

 function M.func(key,env)功率

   return 2
 end
return M

測試輸出

......................
Ran 22 tests in 0.001 seconds, 22 successes, 0 failures
OK
-----test with env.engine -----
F---Phrase() and dictentry:to_phrase() test
..---Phrase() and dictentry:to_phrase() test
.
Failed tests:
-------------
1) test_translator.test_create_translator
./lua/test/test_translator.lua:35: expected:
{
    engine=7LuaTypeIPN4rime6EngineEE: 0x55db638f8008,
    klass="table_translator",
    name_space="translator",
    schema=7LuaTypeIPN4rime6SchemaEE: 0x55db638d4808
}
actual:
{
    engine=7LuaTypeIPN4rime6EngineEE: 0x55db638d4468,
    klass="table_translator",
    name_space="translator",
    schema=7LuaTypeIPN4rime6SchemaEE: 0x55db638d4658
}
stack traceback:
        ./lua/test/test_translator.lua:35: in function 'test/test_translator.test_create_translator'

Ran 4 tests in 0.017 seconds, 3 successes, 1 failure
sbxlm commented 4 months ago

这个不错啊