Affects Version/s: None
Fix Version/s: 2.5
Security Level: Public (Public: Anyone can view)
KRAD Feature Area:UIF Component
KAI Review Status:Not Required
KTI Review Status:Not Required
Code Review Status:Not Required
Include in Release Notes?:Yes
Based on the email thread below, work to reduce or eliminate duplication of downstream project resources for use as test resources by rice-krad-web-framework, without sacrificing test coverage.
I resolved that problem with a maven reimport. I am still not grasping why we have to have a bunch of duplicate code and have to copy over the current stuff to the duplicate to make things work (effectively making the same changes on the same file twice). It is also really annoying during coding when pulling up resources by name and making sure you don't open the wrong one file since everything is copied there as well.
On 12/17/2013 2:27 PM, Mark Fyffe wrote:
The FTL resources from krad-web need to be kept up to date in order for the tests to pass, so are a little different from the resources marked 2_4_M2. It should be pretty easy to use the maven dependency:unpack plugin or similar to share web resources from rice-krad-web if it could be made a dependency of rice-krad-web-framework. However, rice-krad-web currently has a dependency on rice-krad-web-framework. This is problematic since making adding rice-krad-web as a dependency of rice-krad-web-framework would introduce a circular chain.
Since rice-krad-web provides only web resources only - no Java code or unit tests - would it be possible to eliminate the Java dependencies from this project? This would allow rice-krad-web to become a dependency of rice-krad-web-framework, and eliminate the need to synch up FTL in order to run rendering unit tests. I'll try this out locally and follow up.
FWIW The "2_4_M2" resources and code are XML component definitions and supporting code. I suspect these will only need to be updated if/when impacting changes are made, any may be useful for detecting impacting changes while still doing focused work within the rice-krad-web-framework project. Are this resources a concern, or is it primarily the need to keep FTL in synch?
The KRAD-UifDefaults.properties file provides Rice config parameters for building a mock environment for GlobalResources - see UifUnitTestUtils. Note that since JaxbConfigImpl (the normal config file format) is part of rice-core-impl, it cannot be included in rice-krad-web-framework, so simple properties files are used instead for the unit test config. Other than the different format, this is just a standard Rice config file. I'm not sure why this resource wouldn't be available for Brian - it is loaded using ClassLoader.getResourceAsStream(). Maven is able to execute the tests requiring this resource without trouble. Is this possibly an IntelliJ issue?
On Tue, Dec 17, 2013 at 4:31 PM, Jerry Neal <email@example.com> wrote:
Couple more questions. Developers are finding they need to copy resources when making changes. For example, a change to an FTL. How could the tests continue to pass with new code but outdated resources?
Second question, what is KRAD-UIDefaults.properties used for? Brian is getting an exception about not being able to find this class when running the unit tests.
From: Jerry Neal firstname.lastname@example.org
Sent: Tuesday, December 17, 2013 3:34 PM
To: 'Mark Fyffe'
Cc: 'Claus Niesen'; 'Peter Giles'; Brian Smith (email@example.com); 'Erik Meade'
Subject: RE: test milestone snapshot
Copying Brian and Erik so they have this information.
From: Mark Fyffe firstname.lastname@example.org
Sent: Tuesday, December 17, 2013 2:55 PM
To: Jerry Neal
Cc: Claus Niesen; Peter Giles
Subject: Re: test milestone snapshot
The code and resources in the 2_4_M2 packages support ViewLifecycleTest, which is responsible for a significant portion of the UIF test coverage at this time. I copied existing resources in from krad-sampleapp, krad-web, and kns-impl in order to quickly generate a high volume of usable mock data for building full lifecycle unit tests based on real-world utilization patterns (
KULRICE-10546). These tests include coverage of FreeMarker templates as well as Java code involved in the view/component lifecycles. The intent was not for the resources to be temporary, nor to keep in sync with the original source. I have not yet pruned out unused portions, and could still do so, but quite a bit is needed to support existing lifecycle unit tests, and more tests could still be added based on this data to improve coverage.
Is there a way to reuse code and resources from krad-sampleapp, krad-web, and kns-impl for unit testing without a circular dependency, or a preferred approach for improving unit test (not IT) coverage without undue effort? In particular, it would be great if krad-web-framework could use krad-web directly for FreeMarker templates. Until there is an alternative, we will lose coverage by getting rid of these packages.
On Tue, Dec 17, 2013 at 1:27 PM, Jerry Neal <email@example.com> wrote:
We were wondering what the plan is for the milestone snapshot in the test package? Do you have a feel for when we might be able to get rid of that?