我已安装扫描以自动执行测试过程。我使用以下网站的流程:http://qualitytesting.tumblr.com/post/141771752059/run-a-subset-of-xctest-tests-with-fastlanescan
我有两个项目是ios,另一个是Osx运行ios项目。
在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
请帮忙。
答案 0 :(得分:1)
如果您更改
,将会运行扫描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运行。
答案 1 :(得分:0)
我已经解决了这个问题,如下所示:
我使用scan命令创建shell脚本,而不是在我的项目文件夹中找到shell脚本并使用我的代码运行它。
但是我将我的taskpath更改为
task.launchPath = "/usr/local/bin/scan"
从命令行转到/ usr / local / bin / scan并使其可执行,如下所示:
sudo chmod +x /usr/local/bin/scan
最后我运行我的shell脚本,运行良好。