testcontainers-go VS venom

Compare testcontainers-go vs venom and see what are their differences.

testcontainers-go

Testcontainers for Go is a Go package that makes it simple to create and clean up container-based dependencies for automated integration/smoke tests. The clean, easy-to-use API enables developers to programmatically define containers that should be run as part of a test and clean up those resources when the test is done. (by testcontainers)

venom

๐Ÿ Manage and run your integration tests with efficiency - Venom run executors (script, HTTP Request, web, imap, etc... ) and assertions (by ovh)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
testcontainers-go venom
18 6
3,115 976
4.8% 1.8%
9.7 7.3
7 days ago 9 days ago
Go Go
MIT License Apache License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

testcontainers-go

Posts with mentions or reviews of testcontainers-go. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-02-07.

venom

Posts with mentions or reviews of venom. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-05-21.
  • Ask HN: What's your favorite software testing framework and why?
    15 projects | news.ycombinator.com | 21 May 2023
    You can also load fixtures in database directly, work with Kafka queues both as a producer (e.g. write an event to a Kafka queue, wait a few seconds and see that it was consumed by the service you test, and that some side effects can be observed) or as a consumer (e.g. make sure after an HTTP call, an event was correctly pushed to a queue), or even read a mailbox in IMAP to check that your service correctly send an email.

    It's a bit rough on the edges sometimes, but I'd never go back on writing integration tests directly in my programming language. Declarative is the way to go.

    [1]: https://github.com/ovh/venom

  • Easy Integration Testing with Venom!
    1 project | dev.to | 7 Nov 2022
    To write and run our integration tests, we'll use Venom. Venom is a tool created and made open-source by OVHcloud: https://github.com/ovh/venom
  • Venom: Manage and run your integration tests with efficiency
    1 project | news.ycombinator.com | 10 Oct 2022
  • Show HN: Step CI โ€“ API Testing and Monitoring Made Simple
    11 projects | news.ycombinator.com | 10 Oct 2022
    From my experience, generated tests are worthless for anything more serious than smoke tests. I prefer working with no tests than automated tests, I feel they give you a false sense of confidence.

    The Step CI engine itself looks good though. It looks like a cleaner, but less powerful version of a tool (open source, build in-house) we used when I worked at OVHcloud, Venom: https://github.com/ovh/venom

    Here's an example test file for the HTTP executor of Venom: https://github.com/ovh/venom/blob/master/tests/http.yml it's very close to Step CI format.

    I'd still use Venom because it's way more powerful (you have DB executors for example, so after executing a POST request you can actually check in DB that you have what you expect) and I prefer focusing on actually writing integration tests instead of generating them.

    Maybe this post sounds harsh (I feel it as I write it because I have strong feelings against test generation) but I think your approach is a good one for actually writing automated tests. Testing APIs declaratively like this has a great benefit: your tests work on an interface. You can migrate your API to a whole new stack and your tests remain the same. I did it multiple time at OVHcloud: one time migrating a huge API from a Go router to another (Gin->Echo), and another time migrating public APIs from a legacy, in-house Perl engine to a Go server.

  • Debugging with GDB
    13 projects | news.ycombinator.com | 21 Mar 2022
    I still struggle with GDB but my excuse is that I seldom use it.

    When I was studying reverse engineering though, I came across a really cool kit (which I've yet to find an alternative for lldb, which would be nice given: rust)

    I'd recommend checking it out, if for no other reason than it makes a lot of things really obvious (like watching what value lives in which register).

    https://github.com/hugsy/gef

    LLDB's closest alternative to this is called Venom, but it's not the same at all. https://github.com/ovh/venom

  • Do you write integration tests in go?
    3 projects | /r/golang | 7 Sep 2021
    We incorporated [Venom](https://github.com/ovh/venom) into our workflow. It's great for initiating and managing a suite of yaml based tests. It didn't work out of the box for us due to the heavily asynchronous nature of our system, but after a few additions, it has helped my team greatly. We were often afraid to make large changes to critical pieces of the system since a full regression test could take a week or so to check everything. Now it takes an hour.

What are some alternatives?

When comparing testcontainers-go and venom you can also consider the following projects:

dockertest - Write better integration tests! Dockertest helps you boot up ephermal docker images for your Go tests with minimal work.

godog - Cucumber for golang

otj-pg-embedded - Java embedded PostgreSQL component for testing

testcontainers-dotnet - A library to support tests with throwaway instances of Docker containers for all compatible .NET Standard versions.

stepci - Automated API Testing and Quality Assurance

localstripe - A fake but stateful Stripe server that you can run locally, for testing purposes.

gotestfmt - go test output for humans

integresql - IntegreSQL manages isolated PostgreSQL databases for your integration tests.

gotestfmt - go test output for humans

testcontainers-python - Testcontainers is a Python library that providing a friendly API to run Docker container. It is designed to create runtime environment to use during your automatic tests.

go-txdb - Immutable transaction isolated sql driver for golang