micronaut-projects / micronaut-core

Micronaut Application Framework
http://micronaut.io
Apache License 2.0
6.06k stars 1.07k forks source link

Question/recommendation on testing framework to use #1209

Closed brandonlamb closed 5 years ago

brandonlamb commented 5 years ago

Hopefully this is appropriate to ask in an issue.

We are developing in Kotlin, and currently using cli and api micronaut apps. Now we are finally looking into unit/functional testing (late to the game, I know).

Given the usage of Kotlin, I'm trying to determine the best test framework to put our money on investing into.

We see micronaut-testing, looks like cool stuff, with support for Spock and JUnit, so this is a consideration.

Spek is obviously geared towards Kotlin, and we have done some prototyping with it.

TestNG we use for our integration testing, and we like the DataProvider support and custom listeners where we write out to PostgreSQL with the test results with Grafana dashboard integration.

We use pgsql, db2, cassandra (scylla), kafka, elasticsearch (not all in the same API usually, but some mix across our 70+ microservices). The ability to use embedded xyz is amazing, I had no idea that existed.

Swinging back to this question, what would you recommend as a "good bet" for our co-located unit/functional testing, given the technology choices listed? Are there other considerations I am not thinking of?

Myself and a peer are looking to establish some templates/patterns for the rest of our team so we can start including this as requirements for "definition of done".

Thank you for any input! I debated asking this in the gitter channel but didnt want it to get lost in the noise of chat.

Edit 1: just to clarify, this is not a "which test framework is better" question, but rather which one would best for our particular setup/tech/language? If that ends up being "I recommend Spock or Spek", that at least eliminates two from our list to prototype.

jameskleeh commented 5 years ago

This is for reporting issues with the framework. For questions like this please use gitter, or in this case the Kotlin slack. Micronaut really has not much to do with what testing framework you use.

PS: I recently started using https://github.com/kotlintest/kotlintest and I like it better than spek

graemerocher commented 5 years ago

I think there is an argument to be had about what should be the default for tests with Kotlin applications. Currently the default is Spek but @MicronautTest supports only JUnit 5 and Spock. The experience with JUnit 5 and Kotlin is good IMO and is what I would use.