Show HN: Touca – a better alternative to snapshot testing
Hi everyone,<p>Almost 2 years ago, I left my full-time job at Canon to build tooling and infrastructure to help developers write high-level tests for complex software workflows that are not easy to unit test. I wanted to take ideas from visual regression testing, snapshot testing, and property-based testing and build a general-purpose regression testing system that developers can use to find the unintended side-effects of their day-to-day code changes during the development stage.<p>After two years of working ~70 hours per week and going through multiple iterations, we finally have a fully open-source (Apache-2.0) product that finally makes me and other members of our community happy: <a href="https:&#x2F;&#x2F;github.com&#x2F;trytouca&#x2F;trytouca">https:&#x2F;&#x2F;github.com&#x2F;trytouca&#x2F;trytouca</a><p>This week we released v2.0, a milestone version that is useful to small and large teams alike. This version comes with:<p>- An easy to self-host server that stores test results for new versions of your software workflows, automatically compares them against a previous baseline version, and reports any differences in behavior or performance.<p>- A CLI that enables snapshot testing without using snapshot files. It lets you capture the actual output of your software and remotely compare it against a previous version without having to write code or to locally store the previous output.<p>- 4 SDKs in Python, C++, Java, JavaScript that let you write high-level tests to capture values of variables and runtime of functions for different test cases and submit them to the Touca server.<p>- Test runner and GitHub action plugins that help you continuously run your tests as part of the CI and find breaking changes before merging PRs.<p>I would really appreciate your honest feedback, positive or negative, about Touca. Would love to learn if you find this useful and look forward to hearing your thoughts and answering any questions.