我正在尝试将maven应用于已经具有目录结构的现有项目.我从上一个问题中找到的所有内容如下.
但是,我的要求更详细.请参阅下面的目录结构:
<root dir>
|
+--src-java
|
+--src-properties
|
+--WEB-INF
Run Code Online (Sandbox Code Playgroud)
我知道我们可以有类似的东西
<build>
<sourceDirectory>src-java</sourceDirectory>
...
</build>
Run Code Online (Sandbox Code Playgroud)
但sourceDirectory仅限于JAVA源代码,如果我没有弄错的话.
对于上述结构,我该如何声明它pom.xml?移动目录是我现在的最后一个选择.
假设我有以下服务对象
public class UserService {
@Autowired
private UserDao dao;
public void addUser(String username, String password) {
if (username.length() < 8 ) {
username = username + "random" ; // add some random string
}
User user = new User(username, password);
dao.save(user);
}
}
Run Code Online (Sandbox Code Playgroud)
我希望在用户名长度小于8且用户名大于8个字符时测试方法"addUser"的行为.如何在单元测试UserService.addUser(...)中进行验证并验证它?我知道使用assert(),但值"password"在addUser(...)方法之外是不可用的.
我使用JUnit和Mockito.
我正在使用声纳和cobertura(代码覆盖).我对我面临的问题感到困惑.如果我跑
mvn sonar:sonar
Run Code Online (Sandbox Code Playgroud)
我在执行期间看到以下错误
[INFO]
[INFO] <<< cobertura-maven-plugin:2.5.1:cobertura (default-cli) @ hss-core <<<
[INFO]
[INFO] --- cobertura-maven-plugin:2.5.1:cobertura (default-cli) @ hss-core ---
[INFO] Error occurred during initialization of VM
Too small initial heap
[ERROR] Error in Cobertura Report generation: Unable to generate Cobertura Report for project.
org.apache.maven.plugin.MojoExecutionException: Unable to generate Cobertura Report for project.
at org.codehaus.mojo.cobertura.tasks.ReportTask.execute(ReportTask.java:93)
Run Code Online (Sandbox Code Playgroud)
如果我直接使用以下运行cobertura插件
mvn cobertura:cobertura
Run Code Online (Sandbox Code Playgroud)
上面没有错误,并显示以下输出,我假设是预期的输出.
[INFO]
[INFO] <<< cobertura-maven-plugin:2.5.1:cobertura (default-cli) @ hss-core <<<
[INFO]
[INFO] --- cobertura-maven-plugin:2.5.1:cobertura (default-cli) @ hss-core ---
[INFO] Cobertura 1.9.4.1 - GNU GPL …Run Code Online (Sandbox Code Playgroud)