我正在一个项目中工作,有一个Service类和一个Client充当外观的东西(不知道它是否是设计模式世界中的正确术语,但我会尽力使自己清楚).Service方法可能非常昂贵,因为它们可能与一个或多个数据库进行通信,长检查等等,因此每个Client方法都应该调用一个且只能调用一个Service方法.
Service 类结构是这样的
public class Service {
public void serviceA(){...}
public SomeObject serviceB(){...}
// can grow in the future
}
Run Code Online (Sandbox Code Playgroud)
而且Client应该是这样的
public class Client {
private Service myService; // Injected somehow
public void callServiceA() {
// some preparation
myService.serviceA();
// something else
}
public boolean callServiceB(){...}
}
Run Code Online (Sandbox Code Playgroud)
在测试课中,Client我希望有类似的东西
public class ClientTest{
private Client client; // Injected or instantiated in @Before method
private Service serviceMock …Run Code Online (Sandbox Code Playgroud) 我正在容器上测试我的 ear 应用程序,我需要查看我在应用程序上传播的一些调试消息。我正在使用slf4j-apiwithlog4j作为日志记录框架。
在我的测试阶段(在容器外),所有日志都运行良好,所以配置很好。但是现在我已经使用相同的配置部署了应用程序,但是我的消息没有显示。这是我的 log4j 的配置:
#rootLogger config
log4j.rootLogger=INFO, console
#appender config
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console..threshold=DEBUG
log4j.appender.console.target=System.out
log4j.appender.console.layout=org.apache.log4j.EnhancedPatternLayout
log4j.appender.console.layout.ConversionPattern=%d{ABSOLUTE} [%t] %p %l - %m%n
# Log JDBC bind parameter runtime arguments
log4j.logger.org.hibernate.type=INFO
#application logger config
log4j.logger.ar.edu.unt.sigea=DEBUG, console
Run Code Online (Sandbox Code Playgroud)
正如我所说,当我运行我的@Test方法时,我的所有logger.debug()消息都正确显示,但是现在我在具有相同配置的容器上运行,没有显示调试消息。
我找到了这篇文章并log4j.appender.console..threshold=DEBUG按照答案的建议添加了该行,但没有用。
我正在Wildfly-10.0.0.Final应用服务器上进行部署,并且我正在使用此日志记录依赖项:
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.21</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.21</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
我错过了什么?我应该去哪里寻找?预先感谢您的回答
我正在尝试改善项目的覆盖率报告,并且希望排除某些包,但包括子包。例如,我有这种结构
src/main/java/com/myapp
? model
? mapper
? SomeMapperClass.java
? SomeModelClass.java --> exclude this and others...
? ...
? ClassToInclude.java --> but include this
? service
Run Code Online (Sandbox Code Playgroud)
我想排除model包,但包括mapper和ClassToInclude。有什么方法可以不必逐个添加每个排除的类吗?我想要这样的东西pom.xml:
<sonar.coverage.exclusions>
**/model/**/*.java
</sonar.coverage.exclusions>
<sonar.coverage.inclusions>
**/model/mapper/**/*.java
**/model/ClassToInclude.java
<sonar.coverage.inclusions>
Run Code Online (Sandbox Code Playgroud)
任何帮助,指南,选项和/或解决方法,我们感激不尽。预先感谢您的回答。
我通过以下方法找到了一种仅使用sonar.coverage.exclusions属性包括子包的方法:
<sonar.coverage.exclusions>
**/model/*.java
</sonar.coverage.exclusions>
Run Code Online (Sandbox Code Playgroud)
这样,您就可以排除,model但不能排除的每个班级model.mapper。现在,我只需要一种方法来解决如何在排除的程序包中包含特定的类。
我正在使用 Maven Swing 应用程序,但在构建时遇到了一些问题。
我正在使用 Netbeans 8.2 作为我的 IDE 和 Jasper Reports 库来开发我的应用程序,以根据编译.jasper文件生成一些 PDF 报告,这些文件是使用 Jaspersoft Studio 6.3.1 单独生成的,然后在我的项目中用作资源。
我的项目的pom如下(具有相关信息的专家):
<project>
<!-- Needed for jasperreports-functions -->
<repositories>
<repository>
<id>jr-ce-releases</id>
<url>http://jaspersoft.artifactoryonline.com/jaspersoft/jr-ce-releases</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>6.4.0</version>
</dependency>
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports-functions</artifactId>
<version>5.2.0</version>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>2.4.12</version>
</dependency>
<!-- The driver I need for connecting to my DB -->
<dependency>
<groupId>com.ibm.informix</groupId>
<artifactId>jdbc</artifactId>
<version>4.10.8.1</version>
</dependency>
<!-- some other test dependencies -->
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version> …Run Code Online (Sandbox Code Playgroud)