所以我的项目有两个模块:
- 应用
- 文库
在应用程序的@Configuration
public class SwaggerConfiguration {
@Bean
@DependsOn("jaxRsServer") //org.apache.cxf.endpoint.Server bean
public ServletContextInitializer initializer() {
return new ServletContextInitializer() {
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
BeanConfig scanner = (BeanConfig) ScannerFactory.getScanner();
Swagger swagger = scanner.getSwagger();
servletContext.setAttribute("swagger", swagger);
}
};
}
@Bean
public Feature swaggerFeature() {
XSwagger2Feature feature = new XSwagger2Feature();
return feature;
}
@Bean
public FilterRegistrationBean swaggerApiFilter() {
ApiOriginFilter filter = new ApiOriginFilter();
FilterRegistrationBean registrationBean = new FilterRegistrationBean();
registrationBean.setFilter(filter);
registrationBean.setOrder(Ordered.HIGHEST_PRECEDENCE);
return registrationBean;
}
public static class XSwagger2Feature extends Swagger2Feature {
@Override
protected void addSwaggerResource(Server server) {
super.addSwaggerResource(server);
BeanConfig scanner = (BeanConfig) ScannerFactory.getScanner();
Swagger swagger = scanner.getSwagger();
swagger.securityDefinition("api_key", new ApiKeyAuthDefinition("api_key", In.HEADER));
swagger.securityDefinition("petstore_auth",
new OAuth2Definition()
.implicit("http://petstore.swagger.io/api/oauth/dialog")
.scope("read:pets", "read your pets")
.scope("write:pets", "modify pets in your account"));
}
}
}
目录中,我有一些类依赖于库中addroidTest
目录中的类。
结构是:
addroidTest
他们在Android Studio中进行了精细编译,但是当我运行测试时,我得到了:
错误:(6,32)错误:找不到符号类XXXX错误:执行 任务失败[...]
编译失败;有关详细信息,请参阅编译器错误输出。
[...]
任务执行失败> ':应用程序:compileProductionDebugAndroidTestJavaWithJavac'
当gradle执行任务':app:compileProductionDebugAndroidTestJavaWithJavac'它找不到位于库的测试目录中的类。
我知道如何解决这个问题?
答案 0 :(得分:2)
test
来源集未添加到输出的aar
,因此当app
查找library
' s androidTest
时不存在。您可以将共享类放在主lib代码中并从app
引用它,但我不认为您可以依赖于另一个模块的测试类。
答案 1 :(得分:-3)
我和Junit一起工作,如你所说,它位于libs文件夹中。对于您的测试类,您可以尝试以下步骤:
1-在androidTest文件夹中,确保将测试类放在如下路径中:androidTest - > java - > com.examples.bla(与项目相同) - >测试类。
2-转到运行/调试配置 - >默认值 - > Android测试(如果没有,则添加它),然后选择" All in Module"对于测试选项,还要确保在配置窗口的底部添加了Gradle-aware Make。