2. Extension Attributes
XML Calabash supports several extension attributes.
cx:depends-on attribute provides finer grained control
over the dependencies between steps. Consider the following example:
Because step “C” depends on steps “A” and “B”, you can be sure that step “C” will run after “A” and “B”. (If Calabash was a multi-threaded, streaming implementation, the constraint would be weaker.) But what about steps “A” and “B”?
Because neither step depends (directly or indirectly) on the output of the other, there is no guarantee about the order in which they will be evaluated.
If step “B” relies on some side effect of step “A” (perhaps “A” calls a web service or writes a document to disk and “B” relies on this having already happened for its correct operation), then you need a way to force the ordering.
It's best if this can be accomplished by establishing an input/output dependency, reading an output of “A” in the evaluation of “B”.
However, if you can't easily arrange an input/output dependency and you're not concerned about introducing an implementation dependency into your pipeline, you can establish the relationship directly by adding
as an extension attribute on “B”. That informs XML Calabash
that the evaluation of “A” must precede the evaluation
of “B”. The value of
cx:depends is a space-separated
list of step names.
It is an error if the use of
a circular dependency into the pipeline.
As of version 1.1.11, you can add a
attribute to any step. The message will be printed when the step begins
cx:logstyle attribute can only be used on
p:log element. It controls how the logged document(s) will
be written. There are four options:
Document(s) will be written to the specified file, one after another with no separation. The resulting file will not be well-formed XML if more than one document is logged.
The specified file will contain a
px:document-sequence. Each document written will be wrapped in a
px:documentelement. The resulting file will be well-formed XML.
The specified location must be a directory. Each logged document will be written to its own file.
Does nothing. This is the equivalent of removing the