StrutsTestCase遭遇missing configuration resources


我想要对我的一个Struts应用里的Action进行单元测试,所以采用了StrutsTestCase这款框架,本来觉得这个框架看上去挺好用的,结果从昨天下午一直折腾到现在都没成功过一次。
现在的错误情况是这样的,当我运行的时候会显示"missing configuration resources for path /WEB-INF/web.xml"错误。
恰好它的FAQ里有这么一条信息,说是设置classpath,我的应用路径是E:/JavaPros/stolon/STOLONCAS/web/,于是我在classpath的开头加上了这个路径,但是运行依然失败,错误信息还是一样的。
然后我又看到有一种setConfigFile()的方法,于是我尝试了一下在里面指定相对路径或者绝对路径,但是结果依然是失败。只是错误信息变成了"Missing configuration resource for path E:/JavaPros/stolon/STOLONCAS/build/web/WEB-INF/struts-config.xml"。这是很让我不解的,因为很确定我的struts-config.xml在这么个路径里面。
下面是我的单元测试的setUp()方法:

public void setUp() throws Exception {
        super.setUp();
        File web = new File("E:/JavaPros/stolon/STOLONCAS/web/");
        this.setContextDirectory(web);
        this.setConfigFile("E:/JavaPros/stolon/STOLONCAS/web/WEB-INF/web.xml");
        this.setConfigFile("E:/JavaPros/stolon/STOLONCAS/web/WEB-INF/struts-config.xml");
    }

web-xml 单元测试 struts java-ee strutstestcase

芙兰的胸罩 10 years, 7 months ago

你可以试着把

File web = new File("E:/JavaPros/stolon/STOLONCAS/web/");
this.setContextDirectory(web);
this.setConfigFile("E:/JavaPros/stolon/STOLONCAS/web/WEB-INF/web.xml");
this.setConfigFile("E:/JavaPros/stolon/STOLONCAS/web/WEB-INF/struts-config.xml");

改成

setContextDirectory("web"); 
//在你的工程 web/WEB-INF 目录下放有 web.xml 和 struts-config.xml

这样改好之后,应该就可以了,不行的话,再加上以下的代码再试试

setConfigFile("/WEB-INF/web.xml");
setConfigFile("/WEB-INF/struts-config.xml")
一桶小海豹 answered 10 years, 7 months ago

Your Answer