Mastering Testcontainers for Better Integration Tests

แชร์
ฝัง
  • เผยแพร่เมื่อ 3 ต.ค. 2024
  • Testcontainers libraries are a great way to create a reliable environment for running tests. They provide programmable, lightweight, and disposable containers to give you more confidence in your integration tests.
    Getting started with Testcontainers is straightforward, but there are many advanced features to supercharge your test suite.
    In this session, we’ll look at Testcontainers in more detail and answer the following questions:
    What’s the best way to debug what happens in a container?
    How do we build more complex topologies of services?
    What’s the best way to migrate from Docker Compose?
    How can we use Testcontainers for local development in addition to integration tests?
    What is reusable mode and why is everyone talking about it?
    Whether you’re a practitioner with solid test coverage or just beginning your journey into writing more reliable software, this session will introduce you to Testcontainers and its capabilities!
    #Testcontainers #Docker #Java #SpringBoot

ความคิดเห็น • 28

  • @olek_tar
    @olek_tar ปีที่แล้ว +2

    Very good thought about writing tests and generating the code! It would solve a lot of issues in the production code it self, like simplicity, readability, complexity and, of course, test coverage :)

  • @AModernCTO
    @AModernCTO ปีที่แล้ว

    It’s seems more a beginner guide than a mastering lecture. The example are pretty simple. I would suggest a deeper discussion about why use and harder use cases.

  • @israellaks
    @israellaks 7 หลายเดือนก่อน

    This was brilliant! Thanks for sharing!

  • @ZiSang-z4q
    @ZiSang-z4q ปีที่แล้ว

    thank you for the video, i love this video, very well and clearly explained, i got the answer what i was searching for.

  • @Steklopod
    @Steklopod ปีที่แล้ว +3

    Thanks for such a great video. Would be nice to see an example of Elasticsearch 8 test-container which is not so trivial as Redis, Rabbit or Postgres

    • @JavaWithMala
      @JavaWithMala ปีที่แล้ว +4

      Hi Dmitry, here's the reply from Oleg (some issues with answering directly here): There is a small example in the docs about ElasticSearch (www.testcontainers.org/modules/elasticsearch/) and you can also take a look at the ElasticSearch module tests which can suggest some patterns of use: github.com/testcontainers/testcontainers-java/blob/main/modules/elasticsearch/src/test/java/org/testcontainers/elasticsearch/ElasticsearchContainerTest.java

  • @jmrah
    @jmrah 7 หลายเดือนก่อน

    A little bit of an eccentric guy, but great presentation of a cool technology. Well done.

  • @AshishKabi-h6h
    @AshishKabi-h6h ปีที่แล้ว +1

    Can You please provide with the Gihub link?

  • @Kotik112
    @Kotik112 ปีที่แล้ว

    Is there a reason why he created redis as a GenericContainer but Postgres and Kafka as PostgresContainer and KafkaContainer? Just curious.

  • @mondoshigua
    @mondoshigua ปีที่แล้ว

    🇨🇴🧔🏻👍🏼🤝🏼 Saludos desde Colombia.

  • @leandrotulaunc
    @leandrotulaunc ปีที่แล้ว

    Awesome really, where can i find that example?

  • @ogyct
    @ogyct ปีที่แล้ว +1

    We are facing issue with running TC in the cloud. In order to run tests in pipeline we need docker in docker. Which is a security threat. Any idea around it?

    • @ddggcc
      @ddggcc ปีที่แล้ว

      If you're deploying to k8s, you could use KubeDock as an alternative to DinD.

  • @Poisonedyouth79
    @Poisonedyouth79 ปีที่แล้ว

    Very cool 😎

  • @alexandersmirnov4274
    @alexandersmirnov4274 ปีที่แล้ว

    how to redirect container logs into host file?

    • @JavaWithMala
      @JavaWithMala ปีที่แล้ว +3

      Hi Alex, here's the reply from Oleg (some issues regarding him being able to post reply directly) - You have full control of how you want to capture container logs (www.testcontainers.org/features/container_logs/), for example you can have a LogConsumer follow the logs and write them into a file, or use a
      ```Slf4jLogConsumer logConsumer = new Slf4jLogConsumer(LOGGER); container.followOutput(logConsumer);``` with a Slf4j logger that is configured to write everything into a file.

    • @alexandersmirnov4274
      @alexandersmirnov4274 ปีที่แล้ว +1

      @@JavaWithMala thanks for response

  • @SM-ok3sz
    @SM-ok3sz 5 หลายเดือนก่อน

    You know this guy is a Java dev because it took his IDE 21 minutes to load.

  • @USONOFAV
    @USONOFAV ปีที่แล้ว

    TestContainers is only good as the image you can use for testing. Like say oracle-xe, ...last time I check you can't create your own user to executed DDL but you need to use "test" user or something, which is pathetic.

  • @Krazorie
    @Krazorie 8 หลายเดือนก่อน

    This should be in russian, this is our programm, our container and our man.

  • @IIIxwaveIII
    @IIIxwaveIII ปีที่แล้ว +4

    please stop using spring and spring specific things in your demos.
    the world is changing. there is a new generation of framwworks outthere.
    in a spring conf go for it. but if you do a testcontainers demo try to keep it neutral
    thanks!

    • @zartcolwing3218
      @zartcolwing3218 ปีที่แล้ว +7

      Don't discount the fact that knowledge of Spring and SpringBoot is nearly universal in the Java ecosystem and this makes the knowledge presented here immediately understandable/applicable to the majority.
      This, without preventing people who prefer a next-gen framework from learning things, knowing that you can skip the Spring/SpringBoot specific parts and focus on the rest.

    • @PlayGameToday
      @PlayGameToday ปีที่แล้ว +1

      use Micronaut

    • @robss9363
      @robss9363 ปีที่แล้ว

      imho, spring is totally fine here, theremore, spring is de facto default java framework

    • @IIIxwaveIII
      @IIIxwaveIII ปีที่แล้ว

      @@PlayGameToday this is what I mean as its one of the next gen frameworks.
      but I think for this purpose its better to show testcontainer on pure java

    • @USONOFAV
      @USONOFAV ปีที่แล้ว

      lol majority of the enterprise uses spring as their go to frameworks for microservices. Seldom uses micronaut or quarkus.