Improving TestMaker, A Developer's Guide
PushToTest TestMaker is the open-source service and application governance
and test automation platform. The PushToTest runtime turns unit and
functional tests into scalability and performance tests and service
monitors with no extra effort.
PushToTest TestMaker source code is distributed under a GPL v2 license. The PushToTest Company distributes
pre-built binaries of TestMaker under a commercial license that is free and
limits the number of concurrent virtual users and service monitors.
Building TestMaker From Source
TestMaker packages bug fixes, documentation updates, and new features into
ready-to-run binary distributions. Between releases, modules, object
libraries, and work-in-progress code are available from the PushToTest
CVS server. CVS
is a version control system enabling developers to work on TestMaker as
a team.
The PushToTest CVS server allows anonymous download of
the TestMaker code. Updates and patches should be sent to Frank Cohen, principal maintainer
for TestMaker, for consideration. With enough support Frank may choose to
give you CVS commit privileges. Currently, there are four committers.
For Unix:
$ export CVSROOT=:pserver:anon@cvs.pushtotest.com:/var/cvsroot
For Windows (we recommend using a CVS client):
C:> set CVSROOT=:pserver:anon@cvs.pushtotest.com:/var/cvsroot
In both cases the checkouts are:
$ cvs login
(Logging in to anonymous@cvs.pushtotest.com)
CVS password: <ENTER>
$ cvs co tm5
cvs server: Updating tm5
...
The
tm5 module includes:
- Installers - Build scripts for the IZPack installer maker
- distributions - TestMaker releases
- j-0-1.21-tmbranch - TestMaker branch of the j text editor
- maxq-1.0-tmbranch - TestMaker branch of the MaxQ proxy recorder
- testgen4web0.4-tmbranch - TestMaker branch of the TestGen4Web Firefox plugin
- nbproject - Support for the ANT build.xml script
- TestMaker - TestMaker source code
- tool - Test Object Oriented Library (TOOL) of protocol handlers and utilities
- docs - TestMaker documentation
Read the documentation in the docs directory to learn how to build TestMaker.
Getting Help From The TestMaker Developers
To receive email announcements when the
TestMaker CVS is modified, subscribe to the cvscommits
email list. Discussion among the TestMaker developers is on dev@lists.pushtotest.com.
This is a good place to post questions and suggest new features.
Coding Practices
Style
More or less, the Java code format should
follow the Java coding conventions as defined in
Code Conventions for the Java Programming Language.
I don't want to be overly strict on this, but in general, if this style
is followed, it makes it easier for everyone to read the code. If you
don't like the style, feel free to reformat with a tool like 'indent',
however please reformat code back to the correct style before generating
and submitting patches.
Tabs or Spaces
The Religious Debate of programming. :)
Please use four (4) spaces for indentation. It is a happy medium that,
hopefully, will make as many people as possible happy. Again, if you don't
like coding with four spaces, please use a tool to convert to this style
before making diffs or submitting patches.
Javadoc
The PushToTest team likes Javadoc. We promise to use Javadoc and
expect others to use it so our API documentation is kept up to
date.
Making Contributions
PushToTest is available under a license allowing you to possess and modify
the source as you see fit, though you are not required to make any changes
available to anyone, including us. While you are not required to submit
changes, we welcome them, and if you share your changes with us, you
get the advantage of having other people's improvements and fixes without
needing to maintain patches against the official version.
We encourage anyone who finds a bug to report it, and we HIGHLY encourage
anyone who fixes a bug to share the fix with us so others can also benefit.
We also accept contributions, additional features, etc. as long as they fit
into the scope of the project and don't make any unnecessary breaks with
backward compatibility (though we realize it is sometimes inevitable).
Following is an outline of the best way to get a patch accepted.
Source Code
Whether you send a new file or a file patch, please make every effort
to follow the code style used in the file. It makes merging much easier
and the code much neater when a single coding style is used (different
programming languages have different conventions, so we let the maintainer
elaborate on their coding style).
Patches
Diffs are the easiest contributions for us to handle, especially if the
diff is against the latest CVS sources. Diffs should be smaller by default
and generally one diff per bug-fix is preferable over many bug fixes in a
single diff. When they are smaller it allows us to understand the intent
and to evaluate the fix more easily.
Generally diffs should be against the whole tree recursively with
context enabled. This generates larger patches, but they are easier to
understand.
Here are some examples using GNU diff; other tools may differ:
For a single file:
diff -c some_file.c > somefile.patch
For a whole directory (recursive):
diff -c -r tool/ my-branch-tool/
Again, a recursive diff is preferable so changes can be more easily incorporated.
Miscellaneous Notes
Some users have found TestMaker will not build on a Windows system when the
path to the source code contains spaces; for example, c:\Documents
and Setting\xxx. The workaround is to move the source code to a
directory with a path containing no spaces.
|

|

|

|
Additional
documentation, product downloads and updates are at www.PushToTest.com.
While the PushToTest TestMaker software is distributed under an
open-source
license, the documentation remains (c) 2007 PushToTest. All rights
reserved. PushToTest is a trademark of the PushToTest company.
|
|