在 testMovie 命令之后,如何让 JSFL 将跟踪输出保存到文件中?
Posted
技术标签:
【中文标题】在 testMovie 命令之后,如何让 JSFL 将跟踪输出保存到文件中?【英文标题】:How to do I get JSFL to save trace output to a file AFTER a testMovie command? 【发布时间】:2012-12-06 05:11:13 【问题描述】:我正在尝试为我们的一种产品自动执行单元测试。它基于 ActionScript,但我们没有 FlashBuilder。我们使用 Jenkins 来完成我们所有的自动输出,我可以让文件正常工作,并创建和渲染 AS 单元测试 FLA 文件的 testMovie。这样做会将测试结果输出到跟踪输出面板。我使用 JSFL simlar 来运行这个 flash 文件
var folderPath = path/to/folder/file.fla
if (fl.fileExists(folderPath))
fl.openDocument(folderPath);
fl.getDocumentDOM().testMovie;
fl.getDocumentDOM().close(false);
fl.outputPanel.save("file:///C:/testJSFL/output.txt");
不幸的是 outputPanel.save 在 testMovie 输出被放置为跟踪操作之前运行,我还没有通过许多 Google 搜索找到一种方法,以了解如何让系统等待电影运行以保存此文件。我什至尝试多次打开和关闭文件。任何帮助,将不胜感激。
【问题讨论】:
【参考方案1】:确保 testMovie 被作为函数调用并保存输出 before 关闭:
var folderPath = path/to/folder/file.fla
if (fl.fileExists(folderPath))
fl.openDocument(folderPath);
fl.getDocumentDOM().testMovie();
fl.outputPanel.save("file:///C:/testJSFL/output.txt");
fl.getDocumentDOM().close(false);
【讨论】:
不幸的是,我试图保存的输出来自 SWF 的执行。因此,即使您采用这种设置方式,它的工作方式与我上面的一样,并且不会向 output.txt 文件输出任何文本。问题似乎是没有办法告诉 JSFL 在保存输出之前等待 SWF 文件完成。 :(虽然我会说你的操作顺序比我在问题中提出的要好。 如果您需要延迟,您可以在 SWF 面板中使用它并在 ActionScript 中使用 setTimeout 来运行 JSFL 代码(通过 MMExecute)。相反,您可以在您的测试 SWF 中使用 LocalConnection 来触发您的 SWF 面板,然后它会调用 JSFL。 这很好用,贾斯汀。抱歉,我花了这么长时间才回复您。延迟正是我所需要的。以上是关于在 testMovie 命令之后,如何让 JSFL 将跟踪输出保存到文件中?的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 XMLUI 从 JSFL 中的 Flash 创作中获取值?
jsfl中的exportSVG在adobe animate中作为命令运行不起作用