我们使用gradle作为构建工具,并使用idea插件来生成项目/模块文件。项目中新开发人员的流程如下所示:
这一切都运行良好,但通常只有在新开发者加入或有人获得新机器时才会运用。我真的希望以与我们的单元/集成测试自动化相同的方式自动化测试,这是我们持续集成过程的一部分。
有没有人知道这是否可行以及是否有任何库可以做这种事情?
你也可以取代eclipse的想法,因为我们对喜欢使用eclipse的人有类似的过程。
答案 0 :(得分:0)
第二步(有或没有第一步)很容易进行冒烟测试(只是作为CI构建的一部分执行任务),第三步不太可能。但是,如果您遵循最佳实践并重新生成IDEA文件而不是将它们提交给源代码控制,开发人员可能会或多或少地定期执行这两个步骤(例如,每次依赖项更改时)。
答案 1 :(得分:0)
彼得指出,真正的挑战是第3步。前两个由SCM插件和gradle任务解决。您可以尝试通过执行此类操作来自动执行上一个任务
在您的平台上识别正确的命令行选项,该选项从命令行打开指定的intellij项目
找到一个足够简单的方案,可以验证生成的项目是否正常工作。例如。做一个干净然后建立。确保只能使用键盘快捷键重现这些步骤。可以通过验证生成的工件或测试结果报告等来进行验证
使用外部库(如Robot)来编程intellij的启动和键盘的运行。 Here's a simple example with Robot。使用内置控制台而不是纯Java的动态语言,它将大大加快您的脚本编写...
另一个想法是在intellij中包含一个守护进程插件,以便从外部CLI传回命令。否则请与intellij团队联系,他们可能会在这里轻松完成您的工作。
注意:
谨防漏报:任何失败都可能是由项目不稳定等外部问题引起的。尽量确保您只从经过验证的工作项目构建......
谨防误报:任何假设/未经检查的结果代码都可能隐藏问题。确保正确清理工作区,安装,以便首次使用可重复的状态和标准方案。
最后的想法:虽然从理论角度来看很有趣,但这种自动化练习可能无法带来所有必需的结果,即平台的验证。这仍然是一个有趣的学习经历,可以作为一个很好的简短谈话的材料,特别是如果你发现有趣的东西。当你有几个闲暇时间尝试看谁能实现最快的工作解决方案时,让它成为你的团队的啤酒挑战者;)祝你好运!