我在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下。
答案 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"));
}