[英]run the terminal “scan” command from swift code
我已经安装了扫描程序以自动化我的测试过程。 我使用以下网站上的流程: http : //qualitytesting.tumblr.com/post/141771752059/run-a-subset-of-xctest-tests-with-fastlanescan
我有两个项目,一个是ios,另一个是运行ios项目的Osx。
在osx项目中,我初始化扫描文件,然后在其中添加ios项目的方案。
当我运行
scan
从终端命令,它将成功运行ios项目。
但是,如果我使用下面的代码:
class func shell(args: String...) -> Int32 {
let task = NSTask()
task.launchPath = "/usr/bin/env"
task.arguments = args
task.currentDirectoryPath = "/Users/username/Desktop/Xocde/mainSwiftAutomation/"
task.launch()
task.waitUntilExit()
return task.terminationStatus
}
然后调用如下函数:
classname.shell("scan")
它显示以下错误:
env: scan: No such file or directory
请帮忙。
如果您进行更改,扫描将运行
task.launchPath = "/usr/bin/env"
至
task.launchPath = "/usr/local/bin/scan"
如果您的扫描仪安装在那里。 这是我机器上的问题。
该应用程序仍然无法找到xcpretty来生成报告,但是我的UI测试可以运行。
如果将带有shebang的代码( #!/usr/bin/env swift
)添加到常规的run_tests.swift
文件(而不是命令行工具项目)中,那么您应该能够在命令行中运行它而不会出现问题:
$ swift run_tests.swift
...这是通过Swift代码而不是Xcode运行测试的。
我已经解决了这个问题,如下所示:
我在使用scan命令的地方创建了shell脚本,而不是在我的项目文件夹中找到shell脚本并使用我的代码运行它。
但是我将工作路径更改为
task.launchPath = "/usr/local/bin/scan"
然后从命令行转到/ usr / local / bin / scan并使其可执行,如下所示:
sudo chmod +x /usr/local/bin/scan
最终,我运行了我的shell脚本,并且运行良好。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.