cncf-tags / container-device-interface

Apache License 2.0
216 stars 39 forks source link

Switch to gotest.tools/v3 v3.5.0 for asserts in testing #161

Closed elezar closed 1 year ago

elezar commented 1 year ago

We currently use github.com/stretchr/testify to perform our basic test assertions.

This does not align with our primary consumers, where both containerd and moby, for example use:

Although both crio and podman use:

We may need to align with the latter projects to also update their frameworks.

pohly commented 1 year ago

https://github.com/stretchr/testify is by far more popular than https://github.com/gotestyourself/gotest.tools, according to GitHub statistics (stars, used by). I don't think it makes sense to ask crio and podman to switch, if that is what you were suggesting.

Dependencies of tests matter less for downstream consumers. For example, they never appear in vendor and don't influence the production code. They do appear in the full dependency graph, though, which can be an issue. Do you know whether anyone really cares about testify and its transitive dependencies?

If yes, then moving the tests into a separate Go module would be possible if all of them are blackbox tests. Such a module then needs a replace statement and never gets released. Running tests becomes a bit harder (one has to enter the module first). Workspace mode can mitigate that.

elezar commented 1 year ago

Thanks for the input here @pohly -- especially the stats. This was just something I noticed and thought it would be something that only affects us -- it obviously doesn't if our consumers are also not alligned. I'm happy to close this with that in mind.