Provtest File Processing

Basic Description

A provtest file is processed using the provtest plugin for provadmin. See #7.Running the tests|outline When invoking :

$ provadmin run provtest filename=../testdriver.xml
  • the provtest file testdriver.xml is validated using the libxml2

  • any object created inside a provtest file during a previous provtest run is deleted : provtest is reset

  • the provtest file is then parsed in the KIS environment into an object model

  • each test is executed one after the other

By default, a provtest file run is stopped when the end of the file is reached or when a test fails. Invoking the provadmin command line with the parameter "stoponfail=1" will make provtest execute the whole file even if some tests fail. In this case, the global run status will still be "failed".

Flow Management

Within a provtest file, flows are cleaned/loaded only when needed. This means that :

  • in a sequence of tests, the first test using a specific flow will trigger the cleanup of a previous flow (if there was one) and the instantiation of its assigned flow

  • a consecutive test using the same flow will use the already instantiated flow

Specific actions allow overriding of this behavior to clean a flow (action "clean") and to load a flow (action "loadFlow") whenever the user wants.

Completion Criteria

A provtest file run is successful if and only if all the unit tests end in the expected result, which is "OK" by default. It is always possible that a test never completes (either because some expects have not been [in]validated or because some action has not completed). A global timeout for the provtest file exists. It is possible to override its default value by invoking the provadmin command with the parameter "timeout=<value>". See Running the tests section