如何 运行 仅在 Hybris 项目中进行单元测试?
How to run unit tests only in a Hybris project?
我们这里有一个大型 Hybris 项目,运行 所有测试都花费了太长时间(几个小时,是的,一家大型咨询公司创造了这些废话)。我的目标是减少所有基于 spring 的集成测试,并用真正的单元测试代替它们。
但是当 运行使用 Hybris ant build 为一个扩展 (ant alltests -Dtestclasses.extensions=myext
) 进行测试时,如果只有非 Spring 单元,也会启动带有 junit 租户的服务器在该扩展中进行测试。我也尝试使用 ant unittests
但那个甚至不执行我的测试。
有什么方法可以 运行 只有用 @UnitTest
注释的测试,而不需要在 ant 运行 中启动任何服务器?
PS:我有一个 hybris 5.1 和 5.3 商务套件
你应该使用 ant unittests
而不是 ant unit tests
:
ant unittests -Dtestclasses.extensions=myext
备注
运行 只要有人在被测代码的某处使用 Registry.getApplicationContext()
,简单的单元测试就不那么容易了!
事实上,Registry.getApplicationContext()
启动了一个 Hybris 实例。如果您遇到这种情况,您需要使用更好的 class 设计 and/or 模拟来消除对 Registry.getApplicationContext()
的特定调用。
这是很好的信息。然而,在我看来,即使 运行 对单个扩展进行单元测试仍然太多了。单元测试应该 FAST! 如果我愿意,我应该能够 运行 从我的 IDE 中选择一个单元测试方法。如果每次我想测试我的重构代码时都必须等待一堆 non-relevant 到 运行 的单元测试,"red-green testing" 的整个概念就会丢失。
因为这些测试依赖于 运行time 环境,所以 Hybris 中没有单元测试。只有集成测试,因为它们都依赖于 运行ning Hybris 系统来执行。
我想详细说明如何 运行 在 IDE.
中进行单元测试
- 安装 IntelliJ
- 安装 Hybris 插件(https://plugins.jetbrains.com/plugin/7525-hybris-integration)
- 导入项目
- 运行 任何普通开发人员都会做的单元测试
- 尽情享受吧:)
我们这里有一个大型 Hybris 项目,运行 所有测试都花费了太长时间(几个小时,是的,一家大型咨询公司创造了这些废话)。我的目标是减少所有基于 spring 的集成测试,并用真正的单元测试代替它们。
但是当 运行使用 Hybris ant build 为一个扩展 (ant alltests -Dtestclasses.extensions=myext
) 进行测试时,如果只有非 Spring 单元,也会启动带有 junit 租户的服务器在该扩展中进行测试。我也尝试使用 ant unittests
但那个甚至不执行我的测试。
有什么方法可以 运行 只有用 @UnitTest
注释的测试,而不需要在 ant 运行 中启动任何服务器?
PS:我有一个 hybris 5.1 和 5.3 商务套件
你应该使用 ant unittests
而不是 ant unit tests
:
ant unittests -Dtestclasses.extensions=myext
备注
运行 只要有人在被测代码的某处使用 Registry.getApplicationContext()
,简单的单元测试就不那么容易了!
事实上,Registry.getApplicationContext()
启动了一个 Hybris 实例。如果您遇到这种情况,您需要使用更好的 class 设计 and/or 模拟来消除对 Registry.getApplicationContext()
的特定调用。
这是很好的信息。然而,在我看来,即使 运行 对单个扩展进行单元测试仍然太多了。单元测试应该 FAST! 如果我愿意,我应该能够 运行 从我的 IDE 中选择一个单元测试方法。如果每次我想测试我的重构代码时都必须等待一堆 non-relevant 到 运行 的单元测试,"red-green testing" 的整个概念就会丢失。
因为这些测试依赖于 运行time 环境,所以 Hybris 中没有单元测试。只有集成测试,因为它们都依赖于 运行ning Hybris 系统来执行。
我想详细说明如何 运行 在 IDE.
中进行单元测试- 安装 IntelliJ
- 安装 Hybris 插件(https://plugins.jetbrains.com/plugin/7525-hybris-integration)
- 导入项目
- 运行 任何普通开发人员都会做的单元测试
- 尽情享受吧:)