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 を呼び出すと問題なく動作しますが、現在は失敗しています。私のテストファイルで何を変更する必要があるかについてのアイデアはありますか?