Please see integration-test.sh, attached. Instructions are in the script. Feedback welcome. When I use this one I first start up mariadb then run time bash integration-test.sh.
I also attached my latest test result collector tool, aggregator.patch. Feedback not welcome. Just kidding, feedback welcome with that too. Use git apply to patch your Fineract clone, then ./gradlew --quiet testAggregateTestReport -x test to aggregate test results. They'll appear in test-results/build/reports/tests/test/aggregated-results/. I'm still unclear if this is generally useful so for now I'm just keeping it in my stash.
Maybe do a ./gradlew clean before running integration-test.sh or the aggregator may pick up stale test results.
This script and patch are subject to change, simplification, and hopefully complete deprecation and obliteration depending on results of ongoing work to improve the build and tests.
integration-test.sh
Description: application/shellscript
# apply this to fineract (`git apply` will do), then run:
# ./gradlew --quiet testAggregateTestReport -x test
# then view output in test-results/build/reports/tests/test/aggregated-results/
diff --git a/build.gradle b/build.gradle
index 0d7d4af5d..d0b471b5e 100644
--- a/build.gradle
+++ b/build.gradle
@@ -48,7 +48,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 de7530c1a..607d507d0 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) {
