首页 > 解决方案 > JUnit编译执行错误

问题描述

应用程序目录/包结构是下一个:

scr/main/java
-mockitoinit.controller
-mockitoinit.model
-mockitoinit.repository
-mockitoinit.service
-- AppInterface.java
-- AppIntefacaImpl.java

scr/test/java
-mockitoinit.service
--AppInterfaceImplTest.java

AppInterfaceImplTest.java 代码如下:

package mockitoinit.service;

import static org.junit.Assert.*;

import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;

public class AppInterfaceImplTest {

    private AppInterface app;

    @BeforeClass
    public static void setUpBeforeClass() throws Exception {
    }

    @Before
    public void setUp() throws Exception {
    }

    @Test
    public final void test() {
        assert(true);
    }
}

所以,当我执行 mnv compiler:testCompile 它失败了。日志如下:

[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building Init Mocks 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ mockitoinit ---
[INFO] Deleting C:\Users\arturo\eclipse_tmp\mockitoinit\target
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-cli) @ mockitoinit ---
[INFO] Changes detected - recompiling the module!
[WARNING] File encoding has not been set, using platform encoding Cp1252, i.e. build is platform dependent!

[INFO] Compiling 1 source file to C:\Users\arturo\eclipse_tmp\mockitoinit\target\test-classes
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] /C:/Users/arturo/eclipse_tmp/mockitoinit/src/test/java/mockitoinit/service/AppInterfaceImplTest.java:[11,17] cannot find symbol
  symbol:   class AppInterface
  location: class mockitoinit.service.AppInterfaceImplTest
[INFO] 1 error

因为在 src/main/java 目录下找不到源代码类。

在此先感谢 A. Seixo

标签: javamavenjunit

解决方案


据我了解,您的AppInterface包裹是mockitoinit.service. 这意味着你必须import mockitoinit.service.AppInterface在你的AppInterfaceImplTest.

UPD:正如您在评论中展示的示例 - 最好将相同的包用于测试和源代码。例如,如果您有org.kappa.hibernate.job此页面中的类的源测试包,则最好将其存储在同一个包org.kappa.hibernate.job中但在test目录中


推荐阅读