Java mvn包在本地执行的测试比在本地执行的测试多
我有一个spring引导应用程序,其中包括JUnit测试,我使用maven构建。我使用Java mvn包在本地执行的测试比在本地执行的测试多,java,maven,spring-boot,junit,bamboo,Java,Maven,Spring Boot,Junit,Bamboo,我有一个spring引导应用程序,其中包括JUnit测试,我使用maven构建。我使用@Suite.SuiteClasses符号在一个套件中组织了JUnit测试 我的问题是,为什么当我在本地运行mvn package时,我看到套件引用的单元测试被执行,但它们也被执行,就像它们不是套件的一部分一样,而在用竹子构建代码时,再次使用mvn package只执行一次测试(即作为套件的成员)。您是否在竹子和本地使用相同的profiles/settings/maven命令 我认为当执行时,surefire插
@Suite.SuiteClasses
符号在一个套件中组织了JUnit测试
我的问题是,为什么当我在本地运行
mvn package
时,我看到套件引用的单元测试被执行,但它们也被执行,就像它们不是套件的一部分一样,而在用竹子构建代码时,再次使用mvn package
只执行一次测试(即作为套件的成员)。您是否在竹子和本地使用相同的profiles/settings/maven命令
我认为当执行时,surefire插件会开始执行所有的测试。默认情况下,surefire插件可能会使用命名问题
如果您使用-X执行maven目标,您应该能够看到它用于识别测试的surefire插件配置。这应该只匹配您的套件,而不是套件和测试本身。感谢您的回复@wemu。我通过更彻底地检查竹木日志,设法找到了答案。我意识到所有的与我在本地运行时一样,有许多测试用例在Bambol中运行。但是,在解析surefire日志(xml)时,Bambol不计算已运行两次的测试(它将它们视为一次)。因此,不同之处在于。现在我需要了解如何仅运行套件,而不运行单个测试用例(surefire配置)。我认为您只需要更改surefire插件的包含项,使其仅与套件文件匹配。应该可以。谢谢wemu。这就成功了。我从surefile插件配置中排除了*Test.java。套件文件名为*Tests.java,因此包含了这些文件。很高兴它有所帮助:)