我已经编写了一个 Python 模块,并且正在使用 doctest 对其进行测试。我在模块本身中嵌入了测试,我正在调用 doctest
if __name__ == '__main__':
import doctest
doctest.testmod()
我期望的所有测试都通过(或失败)。这种方法的唯一问题是随着测试用例数量的增加,很难遵循代码。我已经读过 doctest 将允许您在单独的文件中进行测试,所以我正在尝试这样做。我发现当我将它们放在另一个文件中时,在我的模块中运行良好的测试失败了。
这是一个示例测试文件。
>>> from modbusServer import ModbusServer
>>> s = ModbusServer('/dev/ttyUSB0')
>>> s.server # doctest: +ELLIPSIS
<modbus_tk.modbus_rtu.RtuServer instance at 0x...>
这是我运行该测试时发生的情况
test@testpc ~/code/newmodbus $ python -m doctest test.txt
**********************************************************************
File "test.txt", line 3, in test.txt
Failed example:
s.server # doctest: +ELLIPSIS
Expected:
<modbus_tk.modbus_rtu.RtuServer instance at 0x...>
Got:
<modbus_tk.modbus_rtu.RtuServer instance at 0xa37adec>
当我从我的模块调用 doctest 时,这个测试工作得很好,但它现在失败了。关于我的测试文件中需要更改什么的任何想法?