J'utilise Maven 2 pour construire un projet Java - Sturts 1.2 - Spring 1.2. J'essaie d'intégrer l'extension StrutsTestCase de JUnit pour permettre de tester les classes d'action.
Lorsque j'essaie de construire, j'obtiens l'erreur suivante :
junit.framework.AssertionFailedError: The /WEB-INF/web.xml was not found.
at servletunit.struts.MockStrutsTestCase.getActionServlet(MockStrutsTestCase.java:344)
at servletunit.struts.MockStrutsTestCase.tearDown(MockStrutsTestCase.java:130)
En faisant des recherches à ce sujet, j'ai appris ce qui suit :
- Si votre
web.xml
se trouve dans un emplacement non standard, alors le fichiersetServletConfigFile()
peut être utilisé pour indiquer àStrutsTestCase
où se trouve le fichier. - Lors de la construction avec Maven, il peut être nécessaire d'indiquer quelles ressources doivent être incluses dans le fichier
pom.xml
.
Je suis en train d'essayer de mettre en œuvre ce système, voici mes progrès actuels :
Classe de test :
import servletunit.struts.MockStrutsTestCase;
public class FooActionTest extends MockStrutsTestCase {
public void setUp() throws Exception {
super.setUp();
setServletConfigFile("webapp/WEB-INF/web.xml");
}
public void testTest() throws Exception { /* stub, no content */ }
J'ai inclus les éléments suivants testResources
en el build
dans le pom.xml
.
<testResources>
<testResource>
<directory>src/test/java</directory>
<includes>
<include>*.*</include>
</includes>
</testResource>
<testResource>
<directory>webapp/WEB-INF</directory>
<includes>
<include>*.xml</include>
</includes>
</testResource>
</testResources>
Voici la structure du projet :
myproject
---src
|---main
| | |---java
| |
| |---test
| |---Java
|
|---target
| |---classes
| |
| |---MYPROJECT
| |---META-INF
| |---WEB-INF
| |---struts.config.xml
| |---web.xml
|
|---webapp
| |---META-INF
| |---WEB-INF
| |---struts.config.xml
| |---web.xml
|---pom.xml
Bien sûr, j'ai essayé une variété de variations des chemins en pom.xml
et en setServletConfigFile
. J'ai également essayé d'utiliser setContextDirectory
sans résultat différent.