我正在出于教学目的开发IntelliJ插件,学生可以编写一些代码,老师可以编写测试,而学生可以运行这些测试并查看他们是否做得正确。如果能将用户正在编写的文件作为java类获取,这样我可以从另一个函数中运行该类的函数并像对其进行编写一样对其进行测试,那就太好了。
截至目前我所拥有的:
在主工具栏中,我有一个按钮,学生可以在其中运行测试。我有一个扩展AnAction的类,现在我不知道该写些什么:
@Override 公共无效actionPerformed(AnActionEvent e){
}
我已经阅读IntelliJ文档已有一段时间了,因为到目前为止,我对此没有任何进一步的了解。我肯定希望可以在这里找到有经验的开发人员,可以给我一两个提示。
非常感谢:)
答案 0 :(得分:2)
如果我理解正确,那么学生会在IntelliJ的一个项目中编程吗?
然后,您可以使用print
来获取他们正在处理的项目的路径。
AnActionEvent event
您可以使用它将整个src文件夹发送到您的计算机,然后执行您需要在其中执行的操作吗?
但是,这听起来也像您希望学生通过插件在他们的身边运行测试功能。在那种情况下,我知道的一个选择是再次使用Project project = event.getProject();
String projectBasePath = project.getBasePath();
,或让他们使用GUI选择文件,然后使用project.getBasePath()
来编译,运行,测试Java等。类。您可以通过这种方式运行任何Windows / shell命令,并将输出通过管道传输到IDE或您自己的工具窗口中。
ProcessBuilder
让我知道这是否有意义-如果您给我更具体的问题,也许我可以为您提供更多帮助。