def self.usage
puts "usage: \#{File.basename $0} [options] test-and-implementation-files...\n\nZenTest scans your target and unit-test code and writes your missing\ncode based on simple naming rules, enabling XP at a much quicker\npace. ZenTest only works with Ruby and Test::Unit.\n\nZenTest uses the following rules to figure out what code should be\ngenerated:\n\n* Definition:\n* CUT = Class Under Test\n* TC = Test Class (for CUT)\n* TC's name is the same as CUT w/ \"Test\" prepended at every scope level.\n* Example: TestA::TestB vs A::B.\n* CUT method names are used in CT, with \"test_\" prependend and optional \"_ext\" extensions for differentiating test case edge boundaries.\n* Example:\n* A::B#blah\n* TestA::TestB#test_blah_normal\n* TestA::TestB#test_blah_missing_file\n* All naming conventions are bidirectional with the exception of test extensions.\n\noptions:\n-h display this information\n-v display version information\n-r Reverse mapping (ClassTest instead of TestClass)\n-e (Rapid XP) eval the code generated instead of printing it\n\n"
end