-
-
Notifications
You must be signed in to change notification settings - Fork 9.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
chore: Upgrade gradle 7.0 to 7.4 #1697
Conversation
等待 #1691 合并后会修复CategoryServiceTest这个测试类,那时CI就能通过,没通过的原因是整体跑ci时OptionService查询的是否开启绝对路径值和单独跑CategoryServiceTest时不一致导致期望中链接地址不同,已在 https://github.com/halo-dev/halo/pull/1691/files#diff-c5c4429148eb87ced70e8e4020d5ce596bc914da8b466e3838e85e54969ad8b8 该文件重写测试 |
建议不要在同一个 PR 中做多件事情。这会增加 review 的复杂度。 值得一提的是,为什么升级 Gradle 会导致我们的测试出错。 |
不晓得为什么isEnableFullPath的值会在不同情况下不一样 我提上面提到的那个pr跑整体测试的时候发现的 所以才修复了它 不是因为升级gradle导致的 |
@JohnNiang 经过定位原因如下:
使用的是集成测试注解 @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) @ActiveProfiles("test") , 并且在 indexPage 方法中调用了installBlog(); 方法其中
其中将启用绝对路径值由 true 改为了false
properties.put(OtherProperties.GLOBAL_ABSOLUTE_PATH_ENABLED, Boolean.FALSE.toString()); 如果测试类的运行顺序改变先执行了 @ExtendWith(SpringExtension.class)
// 或者
@ExtendWith(MockitoExtension.class)
// 来做并且事先对预期数据进行打桩,对测试主体进行mock
// 集成测试也要事先在前置条件准备预期环境已达到目的 为何测试类的顺序会改变?或许是添加了更多的测试类导致类字典顺序变了导致 Reference docs: https://docs.spring.io/spring-framework/docs/current/reference/html/testing.html#testcontext-framework |
请注意,集成测试和单元测试不一样,甚至后面还会有 E2E 测试。 当然,非常感谢你能够排查测试错误原因。但是还有一个问题没有被挖掘到:为什么升级 gradle 之后,测试会失败?升级之前却没有任何问题。 |
我将重新运行一下 CI,看看这是否为偶发情况。 |
不是升级gradle这个才失败的,而是#1691 这个PR首次被发现,所以这个PR我改了CategoryServiceTest的测试方式。 |
…e/upgrade-gradle
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Reference: https://docs.gradle.org/7.4/release-notes.html