[ 
https://issues.apache.org/jira/browse/GEODE-9924?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17472190#comment-17472190
 ] 

ASF subversion and git services commented on GEODE-9924:
--------------------------------------------------------

Commit 0f9f23736edea3be62bb0add94a9076009dafc81 in geode's branch 
refs/heads/develop from Dale Emery
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=0f9f237 ]

GEODE-9924: Avoid merging repeat test logs (#7246)

PROBLEM

Our repeat test tasks merge the output from all executions of a given
test class, making it very difficult to diagnose failures in repeat
tests.

CAUSE

In order to run tests repeatedly, our repeat test tasks override Gradle
code to allow a test class to execute more than once. Gradle's test
reporting code does not expect this. It directs the output from each
test to a log associated with the test class name, not with the specific
execution of the test class. This results in merging the outputs from
different executions of the same class.

SOLUTION

Change Gradle to distinguish separate executions of a test class, and to
log the output from each execution separately.

Components:
- New `ExecutionTrackingTestResultProcessor` class: Wraps a given test
  result processor to append an execution identifier (a simple counter)
  to the name of the test class when reporting results. Gradle
  associates the output with this execution-specific name instead of
  with the class name.
- New `ExecutionTrackingTestClassProcessor` class: Wraps a given test
  class processor to report via an
  `ExecutionTrackingTestResultProcessor`.
- Change `RepeatTestExecuter` to use an
  `ExecutionTrackingTestClassProcessor`.

This commit also reverts GEODE-9912, which partially addressed the same
problem by adding an execution ID to each log line from a DUnit ChildVM.
The execution ID made it possible to identify the source of each merged
log line. GEODE-9924 (this commit) makes the changes from GEODE-9912
unnecessary.

NOTES
- Gradle now creates distinct XML and HTML report files for each
  execution of a given test class.
- The test summary HTML page created by Gradle lists each test class
  execution separately. If a class named `FooTest` executes 50 times (as
  in a stress test run), the summary will list `FooTest-01`,
  `FooTest-02`, ..., `FooTest-50` as if they were separate test classes.

> Make repeat tests log each test class instance separately
> ---------------------------------------------------------
>
>                 Key: GEODE-9924
>                 URL: https://issues.apache.org/jira/browse/GEODE-9924
>             Project: Geode
>          Issue Type: Test
>          Components: tests
>            Reporter: Dale Emery
>            Assignee: Dale Emery
>            Priority: Major
>              Labels: GeodeOperationAPI, pull-request-available
>
> Currently, our repeat test tasks merge the output from all executions of a 
> given test class, making it very difficult to diagnose failures in repeat 
> tests.
> CAUSE:
> In order to run tests repeatedly, our repeat test tasks override Gradle code 
> to allow a test class to execute more than once.
> Gradle directs the output from each test to a log associated with the test 
> class name.
> SOLUTION:
> Change Gradle to distinguish separate executions of a test class, and to log 
> the output from each execution separately. This can be done by using a custom 
> "test result processor" that appends an iteration counter to the end of the 
> test class name before processing the result.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to