2011-06-07 37 views
2

我用StrutsTestCase2.4下netbeans7.0与struts1.3
当运行测试用例,它表明:
的StrutsTestCase的/WEB-INF/web.xml未找到

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

我GOOGLE这个问题,我们建议由setContextDirectory(new File("../web"));解决:

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

但我不太清楚​​位置应该是什么。
我的文件树是

|───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 

我的测试文件正在测试-COM-匍匐茎-支柱。

+0

您可以发现'新文件()getCanonicalPath()'的文件路径。但我不知道你的意思。 – YeJiabin 2011-06-08 09:25:49

回答

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> 
0

从目录结构,似乎:setContextDirectory(新文件( “../../../../网”));

0

因此,基于以上的树,新文件的位置()应该是 “网络”: protected void setUp() throws Exception { super.setUp(); setContextDirectory(new File("web")); }