Hi Dennis - I hadn’t thought of that - we could have a fast failsafe and then a slow one run at different times. Thanks! good idea. AARON ROSENZWEIG / Chat 'n Bike <http://www.chatnbike.com/> e: aa...@chatnbike.com <mailto:aa...@chatnbike.com> t: (301) 956-2319
> On Jan 23, 2020, at 9:58 AM, Dennis Scheffer <den...@selbstdenker.ag> wrote: > > >> Cloning a “company” EO and testing unique constraints in SQL - is heavier >> than testing an “isCamelCase()” function but lighter than selenium. Maybe we >> have to do it in failsafe but it feels closer to regular unit tests that >> should fire every time there is a checkin to the repo. In other words if >> your tests take 5 minutes to run, why not let Agnes tell you immediately >> that the build is broken rather than waiting till midnight for selenium to >> do so? > > If there are multiple ways in which you would like to use the failsafe > plugin, you can always add multiple executions and put them in their own > build profiles > (https://maven.apache.org/guides/introduction/introduction-to-profiles.html > <https://maven.apache.org/guides/introduction/introduction-to-profiles.html>). > Then you can fire failsafe every time you check in new code without selenium > and you can do something like this if your want selenium tests to be run: > 'mvn clean verify -P with-selenium'. There are a bunch of ways to configure > profiles to do something like that. > > -- > Dennis > >> On 23. Jan 2020, at 15:39, Aaron Rosenzweig <aa...@chatnbike.com >> <mailto:aa...@chatnbike.com>> wrote: >> >> Dennis that is a good point, >> >> At the moment I have not cleaned and the product is there but it’s not >> working but your point is still well taken. In Jenkins, in the cloud, it >> will do a clean and I really should be doing a clean every time so the >> product won’t be there to test with… there won’t be a bundle. >> >> Maven “Failsafe” makes sense for selenium… which is technically a JUnit test >> too but it’s very heavy and flexes the UI of a bundled and launched app. >> >> Cloning a “company” EO and testing unique constraints in SQL - is heavier >> than testing an “isCamelCase()” function but lighter than selenium. Maybe we >> have to do it in failsafe but it feels closer to regular unit tests that >> should fire every time there is a checkin to the repo. In other words if >> your tests take 5 minutes to run, why not let Agnes tell you immediately >> that the build is broken rather than waiting till midnight for selenium to >> do so? >> >> http://www.globalnerdy.com/wp-content/uploads/2008/08/you_broke_the_build.jpg >> >> <http://www.globalnerdy.com/wp-content/uploads/2008/08/you_broke_the_build.jpg> >> >> When we run from within Eclipse we have a “bundless build” that uses the >> Fluffy Bunny NSBundle variant and works great… without a product… and the >> destructive EOF unit tests work there. I think what Markus did was patch >> NSBundle to treat the maven target with the intermediate classes and >> resources as a “maven bundless build” or a “maven black-ops bunny” >> if-you-will. >> >> I’m still confused but clarity is setting in. Thank you everyone for this >> hearty discussion. >> AARON ROSENZWEIG / Chat 'n Bike <http://www.chatnbike.com/> >> e: aa...@chatnbike.com <mailto:aa...@chatnbike.com> t: (301) 956-2319 >> >> >> >>> On Jan 23, 2020, at 2:54 AM, Dennis Scheffer <den...@selbstdenker.ag >>> <mailto:den...@selbstdenker.ag>> wrote: >>> >>> Hi everyone, >>> >>> >>>> // That's the main bundle when running tests from Eclipse >>>> Path mainBundlePath = Paths.get("build/your-project.woa"); >>>> >>>> if (Files.notExists(mainBundlePath)) { >>>> // Maven doesn't create a build directory. The WOA bundle goes into the >>>> target folder instead. >>>> mainBundlePath = Paths.get("target/your-project.woa"); >>>> } >>>> >>>> ERXExtensions.initApp("your-project", mainBundlePath.toUri().toURL(), >>>> ACUnitTestingApplication.class, args); >>> >>> This may not work under certain circumstances because the surefire plugin >>> usually runs in the Maven 'test' phase which is before the 'package' phase. >>> Therefore, there may not be a bundle at 'target/your-project.woa' – >>> especially if you do a 'mvn clean test'. >>> >>> The solution is very simple: I would consider tests that depend on a >>> pre-build bundle integration tests (which makes sense because most of the >>> time all the application's 'units' are integrated in a bundle). And just >>> use the Maven failsafe pugin >>> (https://maven.apache.org/surefire/maven-failsafe-plugin/ >>> <https://maven.apache.org/surefire/maven-failsafe-plugin/>). It works >>> exactly the same as the surefire plugin but runs in the 'verify' phase >>> which is after the 'package' phase. So 'mvn clean verify' will clean your >>> target directory, create a fresh new bundle and run your tests on your >>> fresh bundle with the solution mentioned above. >>> >>> With regards, >>> -- >>> Dennis >>> >>> >>>> On 23. Jan 2020, at 02:28, Henrique Prange via Webobjects-dev >>>> <webobjects-dev@lists.apple.com <mailto:webobjects-dev@lists.apple.com>> >>>> wrote: >>>> >>>> Hey Aaron, >>>> >>>> This error rings a bell. I don't recall all the details. It looks like the >>>> collectMainProps method is trying to find the Properties file of your >>>> project in the wrong place. >>>> >>>> When you build your project in Eclipse with WOLips, it generates a build >>>> folder containing your project's WOA bundle. Maven, however, puts the >>>> generated WOA bundle in the target folder. I'm afraid the application >>>> initialization code keeps looking for the build folder when you run your >>>> tests with Maven. >>>> >>>> I'm not sure if there's a better way to solve this problem. Anyway, the >>>> code below may fix it. >>>> >>>> // That's the main bundle when running tests from Eclipse >>>> Path mainBundlePath = Paths.get("build/your-project.woa"); >>>> >>>> if (Files.notExists(mainBundlePath)) { >>>> // Maven doesn't create a build directory. The WOA bundle goes into the >>>> target folder instead. >>>> mainBundlePath = Paths.get("target/your-project.woa"); >>>> } >>>> >>>> ERXExtensions.initApp("your-project", mainBundlePath.toUri().toURL(), >>>> ACUnitTestingApplication.class, args); >>>> >>>> Cheers, >>>> >>>> HP >>>> >>>>> On Jan 22, 2020, at 2:09 PM, Aaron Rosenzweig via Webobjects-dev >>>>> <webobjects-dev@lists.apple.com <mailto:webobjects-dev@lists.apple.com>> >>>>> wrote: >>>>> >>>>> Hi, >>>>> >>>>> I’m trying to run maven unit tests with the surefire plugin that make use >>>>> of EOF but it’s not working out. >>>>> >>>>> I can run them in Eclipse with a direct launch as a bundless build and it >>>>> works. I make a call in the static initializer of the test case to: >>>>> ERXExtensions.initApp(ACUnitTestingApplication.class, arguments); >>>>> >>>>> And it thinks it’s a WO app and has access to the model group and all of >>>>> EOF and I can do destructive stuff like creating and saving Eos to the DB >>>>> all inside a launch from Eclipse. >>>>> >>>>> Where I’m running into trouble is trying to do it with Maven. At the >>>>> moment I’m getting a null pointer from maven launch at the following >>>>> place. >>>>> >>>>> er.extensions.appserver.ERXApplication$Loader.collectMainProps(ERXApplication.java:757) >>>>> >>>>> I think because it is wanting to treat it as a bundle but it isn’t and >>>>> so… I’m not sure where to go from here. Any advice? >>>>> >>>>> AARON ROSENZWEIG / Chat 'n Bike <http://www.chatnbike.com/> >>>>> e: aa...@chatnbike.com <mailto:aa...@chatnbike.com> t: (301) 956-2319 >>>>> >>>>> >>>>> _______________________________________________ >>>>> Do not post admin requests to the list. They will be ignored. >>>>> Webobjects-dev mailing list (Webobjects-dev@lists.apple.com >>>>> <mailto:Webobjects-dev@lists.apple.com>) >>>>> Help/Unsubscribe/Update your Subscription: >>>>> https://lists.apple.com/mailman/options/webobjects-dev/hprange%40gmail.com >>>>> >>>>> <https://lists.apple.com/mailman/options/webobjects-dev/hprange%40gmail.com> >>>>> >>>>> This email sent to hpra...@gmail.com <mailto:hpra...@gmail.com> >>>> >>>> _______________________________________________ >>>> Do not post admin requests to the list. They will be ignored. >>>> Webobjects-dev mailing list (Webobjects-dev@lists.apple.com >>>> <mailto:Webobjects-dev@lists.apple.com>) >>>> Help/Unsubscribe/Update your Subscription: >>>> https://lists.apple.com/mailman/options/webobjects-dev/dennis%40selbstdenker.ag >>>> >>>> <https://lists.apple.com/mailman/options/webobjects-dev/dennis%40selbstdenker.ag> >>>> >>>> This email sent to den...@selbstdenker.ag <mailto:den...@selbstdenker.ag> >> >
_______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com