ala*_*mar 5 java junit testng maven
testng带来junit项目作为传递Maven依赖.它不应该是替代品junit吗?
来自mvn dependency:tree:
[INFO] +- org.testng:testng:jar:6.9.6:test
[INFO] | \- junit:junit:jar:4.10:test
[INFO] | \- org.hamcrest:hamcrest-core:jar:1.1:test
Run Code Online (Sandbox Code Playgroud)
说真的,为什么?这会导致持续的痛苦,因为IDE提供导入两个@Test注释,它们在使用中几乎相同,导致在项目中同时进行junit和testng测试.
排除junit传递依赖是否安全?可能会破坏什么?
Edwin Buck 的回答是正确的,但我想添加一些关于依赖项本身的信息。JUnit 被标记为optional依赖项(参见 pom):
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<optional>true</optional>
</dependency>
Run Code Online (Sandbox Code Playgroud)
根据Maven 文档,这意味着如果您不需要该功能,您应该能够排除依赖项:
这个想法是一些依赖项仅用于项目中的某些功能,如果不使用该功能则不需要。
所以,至少依赖被设计为能够被排除。
为了详细说明 TestNG 和 JUnit 如何连接,您可能需要依赖的特性,TestNG 支持直接执行 Junit 测试。根据文档,这将实现如下:
<test name="Test1" junit="true">
<classes>
<!-- ... -->
Run Code Online (Sandbox Code Playgroud)
免责声明:我是TestNG的贡献者.
我们在一些版本之前用Gradle替换了Maven,我们没有找到定义可选依赖项的方法.现在它应该修复,因为:https://github.com/cbeust/testng/pull/844
这就解释了为什么在某些版本中,您可以将JUnit视为TestNG的直接依赖.但它不是预期的行为,你可以毫无问题地将它从类路径中排除(如果你不需要它来运行一些JUnit测试).
| 归档时间: |
|
| 查看次数: |
434 次 |
| 最近记录: |