我希望能够单元测试我的Arduino代码。理想情况下,我可以运行任何测试,而无需将代码上传到Arduino。哪些工具或库可以帮助我做到这一点?
目前正在开发的Arduino模拟器可能很有用,但似乎还没有准备好使用。
Atmel的AVR Studio包含一个芯片模拟器,可能很有用,但我不知道如何将它与Arduino IDE结合使用。
我希望能够单元测试我的Arduino代码。理想情况下,我可以运行任何测试,而无需将代码上传到Arduino。哪些工具或库可以帮助我做到这一点?
目前正在开发的Arduino模拟器可能很有用,但似乎还没有准备好使用。
Atmel的AVR Studio包含一个芯片模拟器,可能很有用,但我不知道如何将它与Arduino IDE结合使用。
当前回答
我不知道有什么平台可以测试Arduino代码。
但是,有一个Fritzing平台,你可以用它来建模硬件,然后导出PCB图等。
检查的价值。
其他回答
使用带有Arduino库的Proteus VSM来调试代码或测试它。
这是在将代码安装到板上之前的最佳实践,但要确保计时,因为模拟不会在板上运行时实时运行。
James W. Grenning写了一本很棒的书,这本书是关于嵌入式C代码的单元测试的。
试试Autodesk电路模拟器。它允许用许多其他硬件组件测试Arduino代码和电路。
你可以在我的项目PySimAVR中使用Python进行单元测试。Arscons用于构建,simavr用于模拟。
例子:
from pysimavr.sim import ArduinoSim
def test_atmega88():
mcu = 'atmega88'
snippet = 'Serial.print("hello");'
output = ArduinoSim(snippet=snippet, mcu=mcu, timespan=0.01).get_serial()
assert output == 'hello'
开始测试:
$ nosetests pysimavr/examples/test_example.py
pysimavr.examples.test_example.test_atmega88 ... ok
看起来乳香就能完美地完成这项工作。
Emulino是Greg Hewgill为Arduino平台开发的模拟器。(源)
GitHub库