如何通过 Ant(也使用 Jetty 和 RestAssured)在集成测试 运行 的类路径中安装 servlet.jar
How to mount servlet.jar in the classpath of an integration test run by Ant (that also uses Jetty and RestAssured)
我有一个项目https://github.com/paul-hammant/helloworld-war(别人的分支,增值)。这是一个非常快速的构建,应该作为尚未翻转到 Maven/Gradle 等
的团队的集成测试演示。
它有一个启动 Jetty 的集成测试,并运行一个使用出色的 Rest-Assured 的集成测试来确认 /helloworld 端点执行其 "Hello World" 业务。
@Before
public void beforeAll() throws Exception {
Server server = new Server(8080);
WebAppContext context = new WebAppContext();
context.setResourceBase("./web");
loadAnnotations(context);
server.setHandler(context);
server.start();
}
@Test
public void testSomething() {
when()
.get("/helloworld")
.then()
.statusCode(200)
.body(equalTo("Hello, world\n"));
}
在 Intellij 中一切正常,很好。
Ant 吐了,说找不到 servlet API。它肯定在类路径中。我试过更改 Jetty 罐子和 servlet-api 罐子的顺序(没有用)。我试过从类路径中删除 servlet jar(没有用)。除了将 servlet jar 推送到 ant_home/lib/ 之外,我不确定我还能做什么,这会很糟糕。有什么建议?
嗯,Ant 看起来有点神秘。根本原因已在 https://github.com/paul-hammant/helloworld-war 中修复。这是一些 jar 必须从常规 Ant 指令中取出,并放入 Ant 的 lib/ 文件夹本身。
具体来说:
- hamcrest-core-1.3.jar
- hamcrest-library-1.3.jar
- junit-4.12.jar
上次用Ant已经十年了。我模糊地记得 Junit 有一些花招。似乎随着时间的流逝,Hamcrest 加入了 JUnit 需要一个 hokey 设置。
我有一个项目https://github.com/paul-hammant/helloworld-war(别人的分支,增值)。这是一个非常快速的构建,应该作为尚未翻转到 Maven/Gradle 等
的团队的集成测试演示。它有一个启动 Jetty 的集成测试,并运行一个使用出色的 Rest-Assured 的集成测试来确认 /helloworld 端点执行其 "Hello World" 业务。
@Before
public void beforeAll() throws Exception {
Server server = new Server(8080);
WebAppContext context = new WebAppContext();
context.setResourceBase("./web");
loadAnnotations(context);
server.setHandler(context);
server.start();
}
@Test
public void testSomething() {
when()
.get("/helloworld")
.then()
.statusCode(200)
.body(equalTo("Hello, world\n"));
}
在 Intellij 中一切正常,很好。
Ant 吐了,说找不到 servlet API。它肯定在类路径中。我试过更改 Jetty 罐子和 servlet-api 罐子的顺序(没有用)。我试过从类路径中删除 servlet jar(没有用)。除了将 servlet jar 推送到 ant_home/lib/ 之外,我不确定我还能做什么,这会很糟糕。有什么建议?
嗯,Ant 看起来有点神秘。根本原因已在 https://github.com/paul-hammant/helloworld-war 中修复。这是一些 jar 必须从常规 Ant
具体来说:
- hamcrest-core-1.3.jar
- hamcrest-library-1.3.jar
- junit-4.12.jar
上次用Ant已经十年了。我模糊地记得 Junit 有一些花招。似乎随着时间的流逝,Hamcrest 加入了 JUnit 需要一个 hokey 设置。