1

我正在尝试通过我的本地网络 jenkins 服务器构建一个带有单元测试的 flash 应用程序。我已将其设置为 maven 工件,并且正在使用 flexmojos 6.0.1 maven 插件来构建它。当我通过我的开发环境(intelliJ)或命令行在本地构建它时,一切似乎都完美无缺(甚至是单元测试)。我已经在我的客户端和服务器计算机上尝试过。两者都完美地工作。但是当我尝试开始我在 jenkins 中创建的作业时,flexmojos 无法运行单元测试,返回一个 java 错误:'accept timed out'。如果我禁用单元测试,它会在 jenkins 中正确构建。测试是使用 flexunit 4 编写的。

我的猜测是 jenkins 无法在 flash 播放器中打开生成的 testrunner.swf 并且 flexmojos 会因此而超时。Flash 播放器 exe 在 PATH 上可用。

我已经在互联网上搜索过,试图找到有关此问题的更多信息,但那里的信息似乎很少。Flexmojos 似乎没有很好的文档记录,目前还不清楚谁在领导这个项目(如果有人的话?)。这是一个非常有用的 maven 插件,但如果你正在使用 flash。

我应该提到我在客户端和服务器上都使用 Windows。我想在 windows 中设置 jenkins 以运行单元测试会更容易,因为它不是无头服务器,并且在 windows 中使用 flash 更容易。

有没有人在尝试让 jenkins 使用 flexmojos 运行单元测试时遇到类似的问题?

4

1 回答 1

1

原来这是因为我在服务器机器上运行 jenkins 作为 Windows 服务。显然,默认情况下,Windows 服务无法访问桌面(这是启动 Flash 播放器所必需的)。我不知道这是否是 Windows 的最新添加(我在 W7 上运行它)?您可以授予服务桌面访问权限,但这将创建一个只有服务有权访问的新桌面(我猜)。当我这样做时,testrunner.swf 由于安全沙箱问题而失败。我没有尝试解决这个问题,而是选择从命令行手动运行 jenkins WAR。即java -jar jenkins.war

这就像一个魅力,我现在可以使用单元测试运行自动化构建。希望这对其他人有帮助。:)

于 2014-09-03T18:11:35.047 回答