我对我的文件有以下依赖项,我gradle.build
不想将其放在我的最终war
文件中,但我需要它才能Arquillian
在测试阶段运行测试:
/* Snippet from build.gradle. */
testCompile 'org.seleniumhq.selenium:selenium-java:2.48.2'
如果我使用的是 Maven,我可以编写如下内容:
File[] files = Maven.resolver().resolve("org.seleniumhq.selenium:selenium-java:2.48.2").withTransitivity().asFile();
但是,由于我使用的是 Gradle 解析器,我相信我不能这样做:
@RunWith(Arquillian.class)
public abstract class ArquillianTestCase extends SeleniumTestCase {
@Deployment
public static WebArchive createDeployment() {
/* Create the war file according to build.gradle. */
WebArchive war = ShrinkWrap.create(EmbeddedGradleImporter.class)
.forThisProjectDirectory().importBuildOutput()
.as(WebArchive.class);
/* Abstract test classes which depends on Selenium */
war.addClasses(ArquillianTestCase.class, SeleniumTestCase.class);
return war;
}
}
有没有办法在 Gradle 上做到这一点?如果我不添加上述依赖项,我的测试会NoClassDefFoundError
在 Selenium 类上失败。但是,如果我将 Selenium 依赖项更改为compile
而不是testCompile
,它可以工作,但是我的 war 文件大小从 3 兆字节跳到 20 兆字节,并充满了测试类。
提前致谢。