When TextTest doesn't do what you expect it to, the best way
to find out why is usually to enable its own internal logging mechanism
for the relevant aspect of the functionality. You need to do the following:
- Create a .texttest/log directory in your home directory (see here for how TextTest understands "home directory" on Windows).
- Copy "logging.debug" from the texttest release directory (under source/log) to the ~/.texttest/log directory
- Edit logging.debug. In the appropriate section, uncomment both a
line like "#level=INFO" and a line like "#args=('%(TEXTTEST_PERSONAL_LOG)s/actionrunner.diag', 'a')". The first
tells texttest what level of logging to do. The second tells texttest
what file to write the log to. (The file will be in ~/.texttest/log and
the file will end with the .diag suffix.) Each section is for a
different category of logging, that is, what function of texttest to
enable logging for.
- Pass the "-x" argument when invoking texttest, to enable
internal logging (diagnostics). Or check the "Enable self-diagnostics" box from the Running/Advanced tab in the static GUI.
- Execute texttest and read the log file
The existence of ~/.texttest/log/logging.debug (the configuration file
for internal logging) alone does not enable logging, you must pass the
-x argument to texttest also.
Then the hard part is just figuring out what to enable. Some hints / examples:
The location of the logging configuration file to use is set by the field
“Configure self-diagnostics from”, in the Running/Advanced tab in the static GUI, or via "-xr" on the command line.
By default the loggers are set up to write a file alongside the logging.debug file in the location above,
but of course you can configure it to write anywhere you like, either by changing the referenced locations in "logging.debug" or
or by changing the location in "Write self-diagnostics to" on the Running/Advanced tab. ("-xw" on the command line).
There also exist default files for batch mode, the console interface and the GUI in the source directory alongside "logging.debug".
If you wish to enable different logging for any of these modes "permanently", you
can just do the same thing, i.e. copy them to your personal configuration directory
and edit the copy there.
(If the above options are not set, TextTest will find the personal logging directory
from the environment variable TEXTTEST_PERSONAL_LOG,
but you probably won't need to set this variable, it's mainly for the self-tests)
Unfortunately Python doesn't have a native way to do this, and "pstack" and "strace" are
rather limited when it comes to Python. TextTest has its own mechanism, whereby
sending it SIGQUIT will cause it to write out the current stack.
It's time to mail the
TextTest mailing list at sourceforge. We should be able to respond within a day or so.