I try to spend as little time as possible during development actually running code on the board, and instead try and get it working on my PC before copying it over.
There are two ways here:
- Use the Unix or Windows ports of MicroPython. There's still no debugging, but at least your development cycle is a LOT faster.
- Use CPython, then you can use the debugger (pdb).
Now of course the big limitation here is that you have to mock/stub out all the hardware APIs but...that's probably a good idea for writing tests anyway.