Java “main”和“test”中的相同包被视为不同的包

Java “main”和“test”中的相同包被视为不同的包,java,maven,spring-boot,kotlin,access-modifiers,Java,Maven,Spring Boot,Kotlin,Access Modifiers,因此,我有一个项目,其中src/main中的所有包com.foo.etc都被视为与src/test中同名的包不同 这非常烦人,因为这意味着我无法测试受保护的方法,而且我必须在@springbootest注释中指定类 常见的原因是什么 两个地方的目录名是否完全相同?包括case?@user944849是的。如果你想测试包私有等。你必须在src/main/java和src/test/java中拥有相同的包,这是使这些事情成为可能的常见情况。。。除此之外,我会考虑测试一种受保护的方法……听起来像是一种

因此,我有一个项目,其中
src/main
中的所有包
com.foo.etc
都被视为与
src/test
中同名的包不同

这非常烦人,因为这意味着我无法测试
受保护的
方法,而且我必须在
@springbootest
注释中指定


常见的原因是什么

两个地方的目录名是否完全相同?包括case?@user944849是的。如果你想测试包私有等。你必须在
src/main/java
src/test/java
中拥有相同的包,这是使这些事情成为可能的常见情况。。。除此之外,我会考虑测试一种受保护的方法……听起来像是一种气味……@khmarbaise我很清楚,谢谢。在其他项目中,它工作得非常好。我想弄清楚为什么它不在这一个。至于测试受保护的方法,它是对需要测试的库方法的重写。那么您已经重写了继承类的受保护方法了吗?一个代码示例在这里会有很大帮助…两个地方的目录名是否完全相同?包括case?@user944849是的。如果您想测试包私有等。您必须在
src/main/java
src/test/java
中使用相同的包,这是使这些事情成为可能的常见情况。。。除此之外,我会考虑测试一种受保护的方法……听起来像是一种气味……@khmarbaise我很清楚,谢谢。在其他项目中,它工作得非常好。我想弄清楚为什么它不在这一个。至于测试受保护的方法,它是对需要测试的库方法的重写。那么您已经重写了继承类的受保护方法了吗?一个代码示例在这里会有很大帮助。。。