You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用HeavyPlatformTestCase如何让IDEA沙箱可见并实现单测自动调用Action调试

解决思路与实现步骤

1. 关闭无头模式,配置runIde启动参数

在你的runIde运行配置中,检查VM参数,移除-Djava.awt.headless=true(如果存在),确保IDE沙箱以图形化模式启动。

2. 编写自定义Action触发测试执行

创建继承自AnAction的类,在actionPerformed方法中调用测试逻辑:

class RunStartupTestAction : AnAction() {
    override fun actionPerformed(e: AnActionEvent) {
        val project = e.project ?: return
        
        val test = StartupTest()
        try {
            // 初始化测试环境
            test.setUp()
            test.test()
            test.tearDown()
        } catch (ex: Exception) {
            ex.printStackTrace()
            Messages.showErrorDialog(project, "测试执行失败: ${ex.message}", "测试错误")
        }
    }
}

3. 注册Action到IDE菜单

在plugin.xml中注册该Action,方便手动触发:

<actions>
    <action id="com.your.plugin.RunStartupTestAction" class="com.your.plugin.RunStartupTestAction" text="Run Startup Test" description="Execute StartupTest">
        <add-to-group group-id="ToolsMenu" anchor="last"/>
    </action>
</actions>

4. 启动runIde并调试测试

  • 启动runIde配置,等待沙箱IDE加载完成
  • 打开Tools菜单,点击Run Startup Test选项
  • 在StartupTest的test方法中设置断点,即可进行调试

5. 可选:启动IDE后自动触发Action

如果需要自动执行测试,可通过ApplicationStartup实现:

class TestAutoStarter : ApplicationStartup {
    override fun runActivity() {
        ApplicationManager.getApplication().invokeLater {
            val actionManager = ActionManager.getInstance()
            val action = actionManager.getAction("com.your.plugin.RunStartupTestAction")
            action.actionPerformed(AnActionEvent.createFromDataContext("", emptyMap(), DataContext.EMPTY_CONTEXT))
        }
    }
}

在plugin.xml注册启动类:

<application-components>
    <component>
        <implementation-class>com.your.plugin.TestAutoStarter</implementation-class>
        <extensions>
            <applicationStartup implementation="com.your.plugin.TestAutoStarter" order="last"/>
        </extensions>
    </component>
</application-components>

注意事项

  • HeavyPlatformTestCase的setUp和tearDown需正确初始化测试环境,适配平台上下文
  • 若测试依赖特定项目,需在沙箱中提前打开或在代码中自动创建测试项目

内容的提问来源于stack exchange,提问作者chikadance

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 10:53:15