如何检查当前文件是否是 javascript 中的主要文件(iOS Instruments UI Automator)

How to check if the current file is the main one in javascript (iOS Instruments UI Automator)

在 Python 中有这样一个整洁的东西:

if __name__ == "__main__":
    runTests()

所以这个 运行s runTests() 仅当文件是 运行 单独且未导入时。导入文件时,它不会 运行 测试。

所以我想在 Instruments 中为我的测试创建某种模块 UI Automation - 但我也想测试模块本身。

是否有任何全局变量我可以检查以查看当前文件是 运行 作为主文件还是作为导入文件?

好问题,不幸的是答案是。如果您正在寻找 python 中的 __name__ 变量之类的东西,它不存在。一个 hacky 解决方法并不能真正解决您的问题(因为它需要您在 运行ning 之前编辑您的测试脚本),您可以在输入之前设置一个全局变量

var BEING_RUN = false;
#import "path/to/jsFile.js"

每个文件中都有一个 if 语句

//BEING_RUN = true;
if (BEING_RUN) {
    doStuff();
}

并且您只能在 运行 的文件上取消注释 BEING_RUN = true;。同样,这不是真正的解决方案,但它可能适合您的需要。

我的建议是构建您的测试库,这样您就不会从还包含 UI 测试的文件中导入内容。所以你应该把你的测试使用的函数和其他东西放在导入的文件中,并且在你的测试文件中只有用户交互的实际模拟。我还建议查看 tuneup.js (http://www.tuneupjs.org/) 它使 iOS UI 自动化更加愉快。