相关疑难解决方法(0)

为什么IntelliJ需要20多秒才能启动单元测试?

在Eclipse中,(如果我没记错的话)我几乎可以立即运行JUnit测试,几乎没有启动时间.这意味着我可以在几秒钟内完成代码更改+测试周期.

我最近迁移到IDEA IntelliJ,如果你自上次更改了任何源代码,它似乎必须在运行单元测试之前"制作"项目.这对我来说通常需要20秒,这对于测试驱动的开发来说太长了.

我可以在运行配置中取消选中"启动前生成"复选框,但随后执行测试而不编译最近的更改.

"make"期间输出的警告表示它至少在某些时间正在编织某些方面.我认为单元测试通常不需要这些方面.

我的猜测是,每次更改源文件时,Eclipse都会在后台不断编译,并且在不进行方面编织的情况下快速完成.

如何加快IntelliJ中的代码更改+测试周期?

更多信息:我在编译器设置中选中了"在后台编译".Java编译器是com.springsource.org.aspectj.tools-1.6.8.RELEASE.jar中的ajc

junit intellij-idea

19
推荐指数
2
解决办法
7276
查看次数

Intellij想法测试编译耗时太长(与Eclipse相比)

当我"junit"某些课程时,Idea中的编辑大约需要4-5秒.在Eclipse中,它需要几毫秒.

我该怎么做才能加速Intellij Idea编译测试?

junit intellij-idea

5
推荐指数
2
解决办法
3571
查看次数

Gradle 执行测试的速度非常慢,因为它向套件添加了很多测试

我有大约 8 个端到端测试类,它们扩展了我的抽象SpringContextLoadingTest 类,如下所示:

@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT)
public abstract class SpringContextLoadingTest extends AbstractTestNGSpringContextTests {
}
Run Code Online (Sandbox Code Playgroud)

我有带有@SpringBootApplication注释的主应用程序类。

当我使用 TestNG 时,我在一组(“通道 A”)中有一些类,在另一组(“通道 B”)有一些类。

我为运行单独的组创建了 gradle 任务:

task runChannelA(type: Test) {
    forkEvery = 1
    useTestNG() {
        includeGroups "channel A"
    }
}
Run Code Online (Sandbox Code Playgroud)

如果没有“forEvery = 1”,则在运行超过 1 个测试时会出现端口繁忙的问题。

由于下面这个简单的配置,我从 gradle 任务执行中收到了更详细的输出:

tasks.withType(Test) {
    testLogging.showStandardStreams = true
}
Run Code Online (Sandbox Code Playgroud)

如果没有它,测试执行后,应用程序会在关闭 EntityManagerFactory 时挂起 2 分钟,但此标志显示 gradle 拾取了它没有被要求的测试。对于每个测试,无论它属于哪个组,gradle 都会记录:

Gradle Test Executor 22 STANDARD_OUT
2016-12-21 17:10:00.115  INFO   --- [    Test worker] .b.t.c.SpringBootTestContextBootstrapper …
Run Code Online (Sandbox Code Playgroud)

java testng intellij-idea gradle spring-boot

5
推荐指数
1
解决办法
9302
查看次数

标签 统计

intellij-idea ×3

junit ×2

gradle ×1

java ×1

spring-boot ×1

testng ×1