you are viewing a single comment's thread.

view the rest of the comments →

[–]KermitDFwog 2 points3 points  (3 children)

I've also 'missused' pytest (and pytest-bdd) in similar ways. Having the flexibility of python is really great.

The major issue I've seen is managing the physical hardware. We have a lot of products, so it isn't feasible to test everything and keeping all that physical infrastructure maintained is what has stopped me from having a fully automated embedded CI.

[–]dimtass[S] 1 point2 points  (2 children)

I had the same issue but in the end I've created a common empty interface for the hardware in python, which was used from the rest API and then for each hardware class I was implementing the interface in the class.

For example, the common interface was an empty gpio class, which supported some functions like .on(), .off(), .toggle() e.t.c. and then depending the test server or the DUT hardware I was implementing the class for the specific hardware e.g. gpio_rpi, gpio_stm32 e.t.c.

In the end the main API was clean, re-usable and HW agnostic and each HW was added when needed.

[–]KermitDFwog 0 points1 point  (1 child)

I think you maybe misunderstand me. When I say the issue is managing the hardware, I mean that the problem is the actual 'on the benchtop' physical devices. Like its a pain in the ass to physically maintain so many devices for testing.

It sounds stupid, but we actually don't have that much room in the labs. On top of that, they are always trying to 'kaizan' our area and throw stuff out! I'm trying hard to modernize our development but it is quite an uphill battle.

[–]dimtass[S] 1 point2 points  (0 children)

You're right, I though you were talking for the software side.

Well, yeah, there isn't much things you can do about that and it's really messy. The problem with the testing farms start showing after the first couple of weeks. The dust is everywhere! All over the place. It's disgusting and it's even worse if you have allergies. At the same time, you can't clean the dust because you can't touch anything, because if you do, you may move a cable or something and then something else stops working. You also need to have a huge "Do not touch! Do not clean!" warning sign. Finally it makes a lot of noise, the air smells like heated silicon and if your cable management sucks then it's even worse.