7

我们在这里有一个大型 Hybris 项目,运行所有测试需要很长时间(是的,几个小时,是一家大型咨询公司创造了这个废话)。我的目标是减少所有基于 spring 的集成测试,并用真正的单元测试代替它们。

但是,当使用 Hybris ant 构建为一个扩展 ( ant alltests -Dtestclasses.extensions=myext) 运行测试时,如果该扩展中只有非基于 Spring 的单元测试,也会使用 junit 租户启动服务器。我也尝试过使用ant unittests,但那个甚至没有执行我的测试。

有没有什么方法可以只运行带有注释的测试@UnitTest而不在 ant 运行中启动任何服务器?

PS:我有一个 hybris 5.1 和 5.3 商务套件

4

3 回答 3

7

你应该使用ant unittests而不是ant unit tests

ant unittests -Dtestclasses.extensions=myext

笔记

Registry.getApplicationContext()每当有人在被测代码的某个地方使用时,专门运行简单的单元测试并不是那么容易!

实际上,Registry.getApplicationContext()启动了一个 Hybris 实例。如果您遇到这种情况,您需要Registry.getApplicationContext()使用更好的类设计和/或模拟来消除该特定调用。

于 2015-02-11T20:58:58.000 回答
3

这是很好的信息。但是,在我看来,即使为单个扩展运行单元测试仍然太多了。单元测试应该很快!如果我选择的话,我应该能够在我的 IDE 中运行一个单元测试方法。如果每次我想测试重构的代码时都必须等待一堆不相关的单元测试运行,那么“红绿测试”的整个概念就会丢失。

因为这些测试依赖于运行时环境,所以 Hybris 中没有单元测试。只有集成测试,因为它们都依赖于运行的 Hybris 系统来执行。

于 2018-03-01T21:37:30.210 回答
-1

我想详细说明如何在 IDE 中运行单元测试。

于 2019-02-11T16:40:26.490 回答