You need to have access to the Dispatcher and the ServletContext in your tests, 
but you could do something like this for per-unit test configurations:

        ConfigurationProvider provider = new StrutsXmlConfigurationProvider(
                "struts-test.xml", true, servletContext);
        dispatcher.getConfigurationManager().addConfigurationProvider(provider);
        dispatcher.getConfigurationManager().reload();

If you set devMode = true for your tests, you might be able to avoid the 
reload() call.

If you have a just a single "struts-test.xml" for all of your tests, you could 
do something like this in your setUp():

        Map<String, String> testConfig = new HashMap<String, String>();
        testConfig.put("config", 
"struts-default.xml,struts-plugin.xml,struts.xml,struts-test.xml");
        dispatcher = new Dispatcher(servletContext,
                new HashMap<String, String>());
        dispatcher.init();
        Dispatcher.setInstance(dispatcher); 


-----Original Message-----
From: Adam Hardy [mailto:[EMAIL PROTECTED] 
Sent: Thursday, April 03, 2008 5:00 AM
To: Struts Users Mailing List
Subject: Re: struts.xml

Adam Hardy on 02/04/08 12:23, wrote:
> Can I have a second struts.xml in my test directory, and if so, how do 
> I configure it?
> 
> I'm testing some stuff using HttpUnit which launches the whole webapp 
> in my tests. Having a test-only struts.xml will keep the test mappings 
> out of the real webapp, allow me to drop stuff I don't need for the 
> tests, and make the tests faster.

 From the lack of replies, I assume the answer is 'No, you cannot have an 
alternative struts.xml'.

I was checking the low-down on the wiki, where I found that the struts 
configuration xml can be in multiple files listed by the property in the
struts.properties:

### A list of configuration files automatically loaded by Struts 
struts.configuration.files=struts-default.xml,struts-plugin.xml,struts.xml

Using this property, I can set up my maven environment to filter 
struts.properties as a resource and set that property explicitly, so in testing 
I can have 'struts-test.xml'

This works to a limited extent, i.e. one struts.xml for all testing, another 
for in-container deployment.

It's not quite ideal though, as I would prefer to choose the struts.xml on a 
per-test basis.

Does anyone know of something I've missed that allows this?

Thanks
Adam

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

----------------------------------------------------------------------
CONFIDENTIALITY NOTICE This message and any included attachments are from 
Cerner Corporation and are intended only for the addressee. The information 
contained in this message is confidential and may constitute inside or 
non-public information under international, federal, or state securities laws. 
Unauthorized forwarding, printing, copying, distribution, or use of such 
information is strictly prohibited and may be unlawful. If you are not the 
addressee, please promptly delete this message and notify the sender of the 
delivery error by e-mail or you may call Cerner's corporate offices in Kansas 
City, Missouri, U.S.A at (+1) (816)221-1024.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to