在 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中作为命令运行不起作用

JSFL 命令将文本字段拆分为单词 - Flash 数组顺序错误

如何在 JSFL 文件中包含一些 js 文件?

停止程序直到 JSFL 文件完成

如何在不运行的情况下打开 JSFL 文件?