StrutsTestCase未找到/WEB-INF/web.xml

时间:2011-06-07 02:58:49

标签: testing struts web.xml

我在struts1.3的netbeans7.0下使用StrutsTestCase2.4 运行testCase时,它显示:

Error initializing action servlet
javax.servlet.UnavailableException: The /WEB-INF/web.xml was not found.

我已经搜索了这个问题,建议由setContextDirectory(new File("../web"));解决:

protected void setUp() throws Exception
{
    super.setUp();
    setContextDirectory(new File("../web"));
 }

但我不太清楚new File()的位置应该是什么 我的文件树是

|───build
│   ├───test
│   │   └───classes
│   │       └───com
│   │           └───stolon
│   │               ├───common
│   │               ├───database
│   │               ├───helpers
│   │               └───struts
│   └───web
│       ├───META-INF
│       └───WEB-INF
│           ├───classes
│           │   └───com
│           │       └───stolon
│           │           ├───algorithm
│           │           ├───database
│           │           ├───helpers
│           │           ├───servlet
│           │           ├───structures
│           │           └───struts
│           └───lib
├───nbproject
│   └───private
├───src
│   ├───conf
│   └───java
│       └───com
│           └───stolon
│               ├───algorithm
│               ├───database
│               ├───helpers
│               ├───servlet
│               ├───structures
│               └───struts
├───test
│   └───com
│       └───stolon
│           ├───common
│           ├───database
│           ├───helpers
│           └───struts
└───web
    ├───META-INF
    └───WEB-INF

我的测试文件位于test-com-stolon-struts下。

3 个答案:

答案 0 :(得分:2)

我刚刚参与其中。测试运行时,WEB-INF / web.xml(可能还有struts-config.xml等)必须在您的类路径中。确保netbeans将/ build / web /放在测试类路径上。

如果你使用的是maven,你可以添加WEB-INF / * .xml作为测试资源。

    <testResources>
        <testResource>
            <directory>WEB-INF</directory>
            <targetPath>/WEB-INF</targetPath>
            <includes>
                <include>*.xml</include>
            </includes>
        </testResource>
    </testResources>

答案 1 :(得分:0)

从目录结构看来: setContextDirectory(新文件(“../../../../ web”));

答案 2 :(得分:0)

因此,基于上面的树,新File()的位置应为“web”: protected void setUp() throws Exception { super.setUp(); setContextDirectory(new File("web")); }