
Show HN: Goss 3.0: YAML, serverspec alternative now supports dynamic tests - aelsabbahy
https://github.com/aelsabbahy/goss#goss-in-45-seconds
======
aelsabbahy
I posted goss to show HN a year ago, but a lot has changed since.

Changes since my initial post:

* Goss is now primarily YAML based (was JSON originally)

* Goss supports golang's text/template to allow tests to be dynamic [https://github.com/aelsabbahy/goss/blob/master/docs/manual.m...](https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#templates)

* Goss can expose test results as a /healthz endpoint

* Goss can sleep/retry until system is in a passing state, useful for docker waits, see: ([https://medium.com/@aelsabbahy/docker-1-12-kubernetes-simpli...](https://medium.com/@aelsabbahy/docker-1-12-kubernetes-simplified-health-checks-and-container-ordering-with-goss-fa8debbe676c#.kkhsup5xd))

* Many enhancements and bug fixes

~~~
aelsabbahy
Some high level differences from serverspec/testinfra:

* Goss is self contained binary, no python/ruby needed

* Goss is YAML, not python/ruby DSL

* Goss can generate tests from system state using add/autoadd

* Goss can expose tests as a http health endpoint

* Goss can sleep/retry until a system is in a good state, this is useful in docker. See blog

* It runs extremely fast benchmark showing 1,000 tests running under 100ms

Some limitations:

* Goss has to run on the system locally, self-contained binary makes it simple to install.

* DSL will always have more flexibility in what you can do, but it's much simpler. So depends on what you're looking for.

