Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/102.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在Xcode模拟器中进行简单但独立的视图控制器UI测试可能吗?_Ios_Xcode_Xctest_Xcode Ui Testing_Ui Testing - Fatal编程技术网

Ios 在Xcode模拟器中进行简单但独立的视图控制器UI测试可能吗?

Ios 在Xcode模拟器中进行简单但独立的视图控制器UI测试可能吗?,ios,xcode,xctest,xcode-ui-testing,ui-testing,Ios,Xcode,Xctest,Xcode Ui Testing,Ui Testing,是否可以使用Xcode模拟器运行UI测试,例如,通过从XCTestCase手动启动视图控制器?我熟悉通过Swift中的NSProcessInfo(或ProcessInfo)为测试配置环境,但我有一个特定的例子,在这个例子中,只需显示一个视图控制器并在其上运行一系列手势就更容易了。。。而不是在特定条件下导航到它 虽然我可以创建另一个目标,然后进行UI测试,但我想知道是否有更简单的方法。您不能手动初始化XCTestCase类中的UIViewController(或任何其他UIKit类)并在其上运行U

是否可以使用Xcode模拟器运行UI测试,例如,通过从
XCTestCase
手动启动视图控制器?我熟悉通过Swift中的
NSProcessInfo
(或
ProcessInfo
)为测试配置环境,但我有一个特定的例子,在这个例子中,只需显示一个视图控制器并在其上运行一系列手势就更容易了。。。而不是在特定条件下导航到它


虽然我可以创建另一个目标,然后进行UI测试,但我想知道是否有更简单的方法。

您不能手动初始化
XCTestCase
类中的
UIViewController
(或任何其他
UIKit
类)并在其上运行UITests

UITest测试代码作为一个单独的进程运行,合成应用程序中的UI响应的事件。换句话说,您在UITests中编写的代码在测试运行程序应用程序上运行,该应用程序与您测试的应用程序交互。Test Runner应用程序只能与主应用程序的UI元素交互。它无法直接访问主应用程序的代码或视图层次结构。因此,您不能在测试期间添加
UIViewController

正如您在问题中已经提到的,您可以添加另一个仅显示要测试的视图控制器的目标。但对我来说,这听起来不太实际


或者(正如您还提到的)您可以在UITest中设置
XUIApplication().launchArguments
,并在设置启动参数后直接在app start上显示ViewController。

这在单元测试中可能,而不是在UI测试中可能:((可能的用途是在单元测试中将当前视图与printscreen进行比较的测试)