What is Nocaute?

Nocaute is an open-source automated unit test tool for Java that does NOT require test-coding. Unit-test-cases are specified in XML.
The name "Nocaute" stands For NOn Coded Automated Unit Testing Environment

You can use Nocaute to test Java code running inside or outside a web application server.
Within an application server, the test results will be outputed as a nice-looking web page. Otherwise, results will be displayed on Nocaute's onwn graphical User Interface.

Why Nocaute?

Usually, when testing web applications, programmers will insert test instructions inside business code and monitor the server's output screen or log-files.
A better strategy is to write test-classes (wich have the sole purpose of testing the business classes) and deploy them along with the application.
Even then, when test-cases change, you must change java code accordingly, recompile-it, redeploy-it and restart the web application server. It's no wonder programmers don't like testing.

Here's how you do it with Nocaute. First you install Nocaute (as a plugin) on your web-application. Nocaute will be deployed along with it. Then you specify unit-test-cases in XML (basically, you have to tell Nocaute what methods to invoke, wich arguments to pass, and how it should behave to be considered a successfull test). Nocaute allows you to upload this XML file to the server, run the test-cases and gives you the results as a nice-looking web page.

Key Advantages:
Save time: When a test-case changes, you don't have to recompile, redeploy or restart anything. Just upload the new test-script.XML with a single click. This can be 10 times faster then restarting the server, really.

Find errors: The objective of software-testing is not to prove that something works (actually, that is not even possible). The objectives of software testing is TO FIND BUGS. This is what Nocaute was made for. You can define success criteria for your test-cases. When a criterion fails, Nocaute will tell you will wich one failed, and why. If a tested method throws an exception, Nocaute will show you the stacktrace.

Regression-testing: How do we know the new functionality added to a system didn't affect old, tested functionalities? That's simple - you have to retest everything :-), that's regression testing, and, obviously, that is usually done with great pain. With Nocaute, since you can store your test-scripts in XML format, regression testing is way easier.

How much is it?

It's nothing! Here, take it. Let me know if you like it.

Who did it, and why?

I'm am Tony Lâmpada, the author. I am a brazilian Computer Enginner graduated at ITA (Aeronautics Technological Institute). I did Nocaute to use at COMPSIS, the company I work at. We will be needing it soon, to test a really big system we're now building. Besides, we should all thank COMPSIS for allowing me to make Nocaute open-source, since it should be its proprietary code.


See "How much is it?" above.

What's with that picture?

Nocaute, in portuguese (my native language) means knock-out. That's why I put a punch picture here.

What other projects are used by Nocaute?

Displaytag - In my opinion, the best taglib ever made by man
Struts - MVC implementation
Jakarta Commons
Dom4j - XML parsing
Smarttag - some taglibs I made. Get the source.
Commons-j2ee - some useful classes I made. Get the source.

Home Screen shots   Quickstart Help Wanted
2004 Lampada's home page