The youngsters should definitely look up "Ramdisk" for insights. Ha !
On Tue, Apr 22, 2025 at 3:17 PM Adam Monsen <amon...@mifos.org> wrote: > I have integration tests running locally at least as reliably as they > appear to run on GitHub. Maybe I was the only one struggling to achieve > this, but I figure it can't hurt to share what I've learned. Much of what > I've learned has already been added to the top-level readme and more will > be added assuming PR #4612 <https://github.com/apache/fineract/pull/4612> > ( FINERACT-2269 <https://issues.apache.org/jira/browse/FINERACT-2269> ) > passes muster. > > I've attached something that isn't appropriate to commit: a marked up and > oft-hacked shell script I use and the Docker Compose config file it uses to > start the db and an activemq broker that is apparently also required. These > come in very handy for me any time I want to race GitHub actions, get a 2nd > opinion on test results, or test commits before I push them. These are not > clean, not plug-and-play, and likely require a bunch of tweaking to use at > all. > > One cool part (to me, anyway) is that now I don't have to do any env > tweaking, except for JAVA_HOME. Oh there's also that mysterious TZ override > that seems to help. Argh. Oh well. Still, way better than the 20-ish lines > of env var overrides I was previously using. > > One thing I'm getting is increased confidence to be able to someday > recommend the Gradle daemon. It seems to work quite well so far. > > You'll notice I have the aggressive cleanup steps commented out. I'm not > sure if/when those are necessary, but I use them sometimes to try to more > closely emulate what you'd get from a "fresh vm". > > Old-timers might recall the ramdisk trick from (cough) *fifteen years ago*. > Here's to the good old days! 😃 Using a ramdisk speeds up some tests that > hit the db but surely not those that aren't CPU-bound. They seem to mostly > do a lot of waiting. > > See also: > > - https://lists.apache.org/thread/6oj9gn2fwc41d2o8moddb8gjxxnqc5wd > - https://groups.google.com/g/mifosdeveloper/c/qxZPBWDLpaM > - https://groups.google.com/g/mifosdeveloper/c/MfAQcWxOmS0 > - https://mifosforge.jira.com/wiki/spaces/MIFOS/pages/5275914/RAMDisk > > On Fri, Jan 31, 2025 at 12:29 PM Adam Monsen <amon...@mifos.org> wrote: > >> Hi Petri! >> >> When the integration tests start cargo for Fineract, they provide a >>> specific set of configurations for Tomcat that configure Fineract into the >>> correct security mode for testing - see e.g the cargo config block in >>> fineract/oauth2-tests/build.gradle. Did you start your standalone >>> server with the same configs? >>> >> >> Yes, well, I tried to. It seems like there's still some runtime >> difference I was unable to account for. See the growing list of environment >> variables I shared earlier in this thread (inline >> <https://lists.apache.org/thread/343f01c4c0o1dfz45z219gn8cfxfqord> and >> attached >> <https://lists.apache.org/thread/2vrb64lhgscc4n3yw97o55ttqxz2lodj> as >> env.sh >> <https://lists.apache.org/api/email.lua?attachment=true&id=2vrb64lhgscc4n3yw97o55ttqxz2lodj&file=a510c3d82cc0629a5968dd05a49453272b71af812b1fa0137418402989904981> >> ). >> >> I don't think there's much of a gap if someone wants to remove cargo >> entirely, just need to resolve the activemq/spring jms conflict to fix the >> 16 failing tests. Probably. >> >> I'm not familiar with the issues you brought up around security tests >> needing cargo. >> >> I talked with Aleks about replacing the integration test cargo bits with, >> e.g. a local Fineract instance running in Docker. Seems like that's a good >> way to go. >> >> Related / asides: >> >> The current best source of how to test Fineract from the command line is >> the files in .github/workflows/ . It's too bad these *only* work on >> GitHub as written. I'll propose some updates to "INSTRUCTIONS: How to >> execute Integration Tests" in the top-level README.md file since what's >> there now is incorrect. >> >> Assuming those .github/workflows/ files are the most current and useful >> working description of a full build & test run, it's stunning to me that it >> could take an individual a full workday to reproduce that at home! >> >> For testing from IntelliJ, https://fineract-academy.com is the most >> current and useful. >> >> Best and thanks, >> -Adam >> >