This is an automated email from the ASF dual-hosted git repository.

meonkeys pushed a commit to branch auto-close-static-mocks
in repository https://gitbox.apache.org/repos/asf/fineract.git

commit a2880413dea981f18f37ff7bf8fcd6cbb69f7bf1
Author: Adam Monsen <[email protected]>
AuthorDate: Tue Aug 5 12:17:32 2025 -0700

    WIP use gradle to aggregate (non-e2e) test results
    
    Usage:
    
    * run tests from one or more projects
    * do not `gradle clean` between test runs
    * run: `gradle testAggregateTestReport -x test`
    * view report at 
`test-results/build/reports/tests/unit-test/aggregated-results/index.html`
    
    Also... maybe we should be using Allure instead?
---
 build.gradle              |  3 +-
 settings.gradle           |  1 +
 test-results/build.gradle | 74 +++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 77 insertions(+), 1 deletion(-)

diff --git a/build.gradle b/build.gradle
index cc02b39945..058625f7c2 100644
--- a/build.gradle
+++ b/build.gradle
@@ -49,7 +49,8 @@ buildscript {
                 'fineract-e2e-tests-core',
                 'fineract-e2e-tests-runner',
                 'fineract-progressive-loan',
-                'fineract-progressive-loan-embeddable-schedule-generator'
+                'fineract-progressive-loan-embeddable-schedule-generator',
+                'test-results'
             ].contains(it.name)
         }
         fineractPublishProjects = subprojects.findAll{
diff --git a/settings.gradle b/settings.gradle
index de7530c1a1..607d507d08 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -75,6 +75,7 @@ include 'fineract-progressive-loan'
 include 'fineract-progressive-loan-embeddable-schedule-generator'
 // NOTE: custom Docker image with all custom modules included
 include ':custom:docker'
+include ':test-results'
 // NOTE: dynamically load custom modules with pattern "custom -> company -> 
category -> module"
 file("${rootDir}/custom").eachDir { companyDir ->
     if('build' != companyDir.name && 'docker' != companyDir.name) {
diff --git a/test-results/build.gradle b/test-results/build.gradle
new file mode 100644
index 0000000000..7919c15837
--- /dev/null
+++ b/test-results/build.gradle
@@ -0,0 +1,74 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+//apply plugin: 'test-report-aggregation'
+
+plugins {
+    id 'test-report-aggregation'
+}
+
+description = 'Aggregate Test Results'
+
+// Declare dependencies using the testReportAggregation configuration
+// (list project results to aggregate here)
+dependencies {
+    // EVERYTHING. Doesn't work because we don't/can't run them all at once.
+    //testReportAggregation fineractJavaProjects
+
+    // FIXME - old project? delete?
+    //testReportAggregation project(':fineract-api')
+
+    // specific projects only (all but e2e) -- this is probably the way to go
+    testReportAggregation project(':fineract-core')
+    testReportAggregation project(':fineract-cob')
+    testReportAggregation project(':fineract-validation')
+    testReportAggregation project(':fineract-command')
+    testReportAggregation project(':fineract-accounting')
+    testReportAggregation project(':fineract-provider')
+    testReportAggregation project(':fineract-branch')
+    testReportAggregation project(':fineract-document')
+    testReportAggregation project(':fineract-investor')
+    testReportAggregation project(':fineract-charge')
+    testReportAggregation project(':fineract-rates')
+    testReportAggregation project(':fineract-tax')
+    testReportAggregation project(':fineract-loan')
+    testReportAggregation project(':fineract-savings')
+    testReportAggregation project(':fineract-report')
+    testReportAggregation project(':integration-tests')
+    testReportAggregation project(':twofactor-tests')
+    testReportAggregation project(':oauth2-tests')
+    testReportAggregation project(':fineract-client')
+    testReportAggregation project(':fineract-avro-schemas')
+    testReportAggregation project(':fineract-progressive-loan')
+    testReportAggregation 
project(':fineract-progressive-loan-embeddable-schedule-generator')
+}
+
+// Define a report of type AggregateTestReport which collects test data from 
unit test suites
+reporting {
+    reports {
+        testAggregateTestReport(AggregateTestReport) {
+            testType = TestSuiteType.UNIT_TEST
+        }
+    }
+}
+
+// make aggregate test report generation part of the 'check' lifecycle phase
+//tasks.named('check') {
+//    dependsOn tasks.named('testAggregateTestReport', TestReport)
+//}

Reply via email to