Thanks for checking out this cheap plug of mine.
My name is Andreas Grapentin, and I am most (maybe a little) known as the creator of the open source C memory and runtime profiler graprof.
As a dedicated C developer, I like to check out new and traditional tools to do stuff that I need done, and during this process I tend to stick with the tools that are mature and work well, which is why I use autotools as build system for all my projects.
As you may, or may not be aware, the canonical solution for writing tests with autotools is dejagnu, wich is a testing framework based on TCL. Unfortunately, the dejagnu documentation is not good enough to provide the smooth learning curve desired by todays developers, which is why it is hugely underrated nowadays.
Now, if you have ever done something with ruby on rails, you may know cucumber testing, which is an awesome way of writing natural language tests that are fun to write, easy to read and generally awesome all the way!
I wanted to incorporate the fun cucumber-esque way of writing natural language tests into dejagnu, to have seamless integration into any autotools projects out there, to help developers find the fun in writing tests, and subsequently produce better software.
To give an example, a simple test could look like this:
which is undeniably a very intuitive way to specify assertions.Code:# test that `ls -a` lists the parent directory Given an executable "ls" \ when I run with parameters "-a" \ then I should see ".."
To enable developers to do all that, I created asparagus on github, which basically is a list of dirty hacks in TCL that processes statements as the example above into a list of executed steps implemented in TCL.
Currently, asparagus is in a state where it just started to work, and I am starting to integrate it into my C projects to figure out where this could possibly go, but I would like to improve asparagus to a point that it is easy and pleasurable for developers to use.
For that I need people to actually use it, to tell me what I can do to improve it, or to just flat-out send me pull requests with improvements.
If you would like to collaborate because you are passionate about your testing, or just have any questions on why I am doing all this, or why natural language testing is cool, or about anything just let me know