同一项目中的JavaEclipseJUnit测试
这是一个相对开放的问题。如果我在Eclipse中的一个项目中构建了一个应用程序,然后我想测试这个项目,那么我应该在同一个项目中创建JUnit代码还是创建一个单独的项目。例如
ShopSystem
可能是我的主要项目的名称-我应该创建一个名为ShopSystemTest
的项目吗
一般来说,测试代码应该存储在距离主项目文件夹多远的地方?如果我将测试代码存储在主项目中,然后将主项目导出为可运行的jar,它将携带测试代码,这并不理想
建议
你可以在下面搜索框中键入要查询的问题!
这是一个相对开放的问题。如果我在Eclipse中的一个项目中构建了一个应用程序,然后我想测试这个项目,那么我应该在同一个项目中创建JUnit代码还是创建一个单独的项目。例如
ShopSystem
可能是我的主要项目的名称-我应该创建一个名为ShopSystemTest
的项目吗
一般来说,测试代码应该存储在距离主项目文件夹多远的地方?如果我将测试代码存储在主项目中,然后将主项目导出为可运行的jar,它将携带测试代码,这并不理想
建议
# 1 楼答案
我非常喜欢maven约定:在同一个项目中,main和test有一个单独的源代码树,主代码得到部署,测试代码没有。包结构可以(但不一定)相同
在eclipse中,当您选择
new -> JUnit test case
时,只需将源文件夹更改为src/test/java,并保持建议的包不变(留在同一个包中的好处之一是可以访问受保护的和包范围的成员,尽管这不是“正确的”单元测试行为)
更新:这里有一些代码来说明我的最后一点:
Main类(在src/Main/java中):
测试类(在src/Test/java中):
# 2 楼答案
考虑Maven方法:在Maven项目中,SUCUCES按这种方式组织
源代码放在src/main/java中,junit测试代码放在src/test/java中,它们都是源文件夹(因此,您可以将junit代码放在与java代码相同的包中,但放在不同的源文件夹中)
有趣的是,对于通常的编码,您的jUnit类位于代码包中,但是在创建jar时,您可以只获取来自src/main/java的类,而不发布测试
# 3 楼答案
通常,您有-
# 4 楼答案
虽然没有唯一正确的方法,但通常的方法是将单元测试保持在同一个项目中
您可以创建第二个源文件夹(如
test
),将测试类放在与被测试类相同的包中。这还允许您测试包私有类,同时不让测试类充斥主源包您的源文件夹/包结构将如下所示:
然后,您可以将构建配置为在打包JAR时不包含
test
源文件夹