The EiffelTestSuiteFinishedEvent declares that a previously started test suite (declared by EiffelTestSuiteStartedEvent) has finished and reports the outcome.
Note that while similar, the data.outcome object is different from that of EiffelActivityFinishedEvent. The outcome of the test suite reports not only the conclusion of the test suite execution - whether the tests were successfully executed - but also passes a verdict on the item or items under test. To highlight this conceptual difference, both data.outcome.verdict and data.outcome.conclusion are included.
Type: Object
Required: No
Description: The outcome of the test suite.
Type: String
Required: No
Legal values: PASSED, FAILED, INCONCLUSIVE
Description: A terse standardized verdict on the item or items under test. Unlike in EiffelTestCaseFinishedEvent, this property is optional. It offers a method of summarizing the verdict of the test suite as a whole, but may be skipped.
PASSED signifies that the item or items under test successfully passed the test suite.
FAILED signifies that the item or items under test failed to pass the test suite.
INCONCLUSIVE signifies that the verdict of the test suite was inconclusive. This SHOULD be the case if data.outcome.conclusion is not SUCCESSFUL, but may in combination with a SUCCESSFUL conclusion be used to represent unreliability or flakiness.
Type: String
Required: No
Legal values: SUCCESSFUL, FAILED, ABORTED, TIMED_OUT, INCONCLUSIVE
Description: A terse standardized conclusion of the test suite, designed to be machine readable. Unlike in EiffelTestCaseFinishedEvent, this property is optional. It offers a method of summarizing the conclusion of the test suite as a whole, but may be skipped.
SUCCESSFUL signifies that the test suite was successfully concluded. Note that this does not imply that the item under test passed the tests.
FAILED signifies that the test suite could not be successfully executed. To exemplify, one or more tests failed to run due to required environments being unavailable.
ABORTED signifies that the test suite was aborted before it could be concluded.
TIMED_OUT signifies that the test suite did not conclude within the allowed time frame.
INCONCLUSIVE signifies that the outcome of the test suite could not be determined.
Type: String
Required: No
Description: A verbose description of the test suite outcome, designed to provide human readers with further information.
Type: Object[]
Required: No
Description: An array of persistent log files generated during execution.
Type: String
Required: Yes
Description: The name of the log file.
Type: String
Required: Yes
Description: The URI at which the log can be retrieved.
Required: Yes
Legal targets: EiffelTestSuiteStartedEvent
Multiple allowed: No
Description: Identifies the relevant test suite execution. In other words, EiffelTestSuiteStartedEvent acts as a handle for a particular test suite execution.
Required: No
Legal targets: Any
Multiple allowed: Yes
Description: Identifies a cause of the event occurring. SHOULD not be used in conjunction with CONTEXT: individual events providing CAUSE within a larger context gives rise to ambiguity. It is instead recommended to let the root event of the context declare CAUSE.
Required: No
Legal targets: EiffelActivityTriggeredEvent,
EiffelTestSuiteStartedEvent
Multiple allowed: No
Description: Identifies the activity or test suite of which this event constitutes a part.
Required: No
Legal targets: EiffelFlowContextDefinedEvent
Multiple allowed: Yes
Description: Identifies the flow context of the event: which is the continuous integration and delivery flow in which this occurred – e.g. which product, project, track or version this is applicable to.
Type: String
Format: UUID
Required: Yes
Description: The unique identity of the event, generated at event creation.
Type: String
Format: An event type name
Required: Yes
Description: The type of event. This field is required by the recipient of the event, as each event type has a specific meaning and a specific set of members in the data and links objects.
Type: String
Format: Semantic Versioning 2.0.0
Required: Yes
Description: The version of the event type. This field is required by the recipient of the event to interpret the contents. Please see Versioning for more information.
Type: Integer
Format: Milliseconds since epoch.
Required: Yes
Description: The event creation timestamp.
Type: String[]
Format: Free text
Required: No
Description: Any tags or keywords associated with the events, for searchability purposes.
Type: Object
Format:
Required: No
Description: A description of the source of the event. This object is primarily for traceability purposes, and while optional, some form of identification of the source is HIGHLY RECOMMENDED. It offers multiple methods of identifying the source of the event, techniques which may be select from based on the technology domain and needs in any particular use case.
Type: String
Format: Free text
Required: No
Description: Identifies the domain that produced an event. A domain is an infrastructure topological concept, which may or may not corresponds to an organization or product structures. A good example would be Java packages notation, ex. com.mycompany.product.component or mycompany.site.division. Also, keep in mind that all names are more or less prone to change. Particularly, it is recommended to avoid organizational names or site names, as organizations tend to be volatile and development is easily relocated. Relatively speaking, product and component names tend to be more stable and are therefore encouraged, while code names may be an option. You need to decide what is the most sensible option in your case.
Type: String
Format: Hostname
Required: No
Description: The hostname of the event sender.
Type: String
Format: Free text
Required: No
Description: The name of the event sender.
Type: Object
Format:
Required: No
Description: The GAV coordinates of the serializer software used to construct the event.
Type: String
Format: groupId
Required: Yes
Description: The groupId of the serializer software.
Type: String
Format: artifactId
Required: Yes
Description: The artifactId of the serializer software.
Type: String
Format: version
Required: Yes
Description: The version of the serializer software.
Type: String
Format: URI
Required: No
Description: The URI of, related to or describing the event sender.
Type: Object
Format:
Required: No
Description: An optional object for enclosing security related information, particularly supporting data integrity. See Security for further information.
Type: Object
Format:
Required: No
Description: An optional object for properties supporting the Strong Distribution Model. Note that this only addressed the integrity of the Eiffel event, not its confidentiality or availability.
Type: String
Format:
Required: Yes
Description: The identity of the author of the event. This property is intended to enable the recipient to look up the appropriate public key for decrypting the digest and thereby verifying author identity and data integrity. The format of the author identity varies depending on the key infrastructure solution used. Note that this requires the presence of a Trusted Authority (TA) which the recipient can query for the correct public key. The identity and location of the TA must never be included in the event itself, as this would compromise the security of the solution.
Type: String
Format:
Required: Yes
Description: The encrypted digest. The cryptographic hash function and the decryption algorithm to use, similarly to the Trusted Authority (TA), must be known to the recipient. Note that the digest of the entire event is affected by the value of this property. For this reason the input to the hash function SHALL be the entire event unaltered in all parts except for this property, which SHALL be replaced by an empty string.
Version | Introduced in | Changes |
---|---|---|
1.1.0 | edition-toulouse | Multiple links of type FLOW_CONTEXT allowed. |
1.0.0 | edition-bordeaux | Initial version. |