我正在使用 SWIG 从 C++ 为 Robot Framework 生成包装器作为测试库。RF 发出警告,因为它不包含关键字。
被测系统是一个Win32 DLL,LibLogin2,由VS向导创建。它默认导出函数:
LIBLOGIN2_API int fnLibLogin2(void);
// This is an example of an exported function.
LIBLOGIN2_API int fnLibLogin2(void)
{
return 42;
}
我将接口文件添加到项目中:
/* LibLogin2.i */
%module LibLogin2
%{
extern int fnLibLogin2(void);
%}
extern int fnLibLogin2(void);
LibLogin2.py、LibLogin2_warp.cxx、_LibLogin2.pyd 使用 Release|x64 成功构建。
我有一个射频测试用例如下:
*** Settings ***
Library LibLogin2.py
*** Test Case ***
Trivial
${value} = fnLibLogin2
Should Be Equal ${value} ${42}
我启动机器人框架并得到错误:
pybot LoginTests.tsv [ WARN ] 导入的库 'LibLogin2.py' 不包含关键字
我可以通过注释掉 LibLogin.py 的最后一行来解决这个问题:
def fnLibLogin2():
return _LibLogin2.fnLibLogin2()
#fnLibLogin2 = _LibLogin2.fnLibLogin2
当您每次都必须注释掉每个关键字时,这很烦人。
请指教!
这是我的配置:
Windows 8 64 位 Visual Studio 2012 Python 2.6.6 机器人框架 2.7.5 swigwin-2.0.8