【发布时间】:2014-02-28 15:00:05
【问题描述】:
我有一个构建 xmlreader 类的 maven 项目,该类具有 2 个构造函数。一种采用外部文件名,另一种采用默认加载资源。
默认构造函数用于测试,但当我使用默认参数执行程序时找不到文件。更改我访问资源的方式会使测试失败并且 maven 停止构建。我已经提取了 jar,文件就在里面。
这里是构造函数:
public XmlReader() {
this.filename = getClass().getResource("/Default.xml").getPath();
this.git = new GitClass();
this.cucumber = new CucumberClass();
this.execute = new ExecuteClass();
}
错误信息:
5030 [main] ERROR - File file:/Users/andreasjoelsson/XmlReader/target/XmlReader-1.0-SNAPSHOT.jar!/Default.xml not found.
5030 [main] DEBUG - Context: init of reader: false
JUnit 测试:
@Test
public void test2() {
XmlReader testObject = new XmlReader();
// Subject to change as it's the default config to run.
assertEquals(true, testObject.init());
assertEquals(25, testObject.getExecute().getMaxUsers());
assertEquals(true, testObject.getExecute().isRepeatFeature());
assertEquals(1, testObject.getExecute().getSecondsBetweenIncrease());
assertEquals(2, testObject.getExecute().getUsersIncreasedEachInterval());
assertEquals(20, testObject.getExecute().getWaitAfterRampSeconds());
System.out.println(testObject.toString());
}
所以我执行测试的包可以工作,但当我在 maven 之外运行它时却不行。
【问题讨论】:
-
您的问题已经得到解答:stackoverflow.com/questions/15749192/…。尝试使用 getResourceAsStream() 方法。