jjzjj

xctestcase

全部标签

xcode - 我如何在 XCTestCase 中使用我的模块中的类?

我正在尝试测试这个类(Swiftris/Swifteris/Array2D.swift):classArray2D{letrows:Intletcolumns:Intvararray:Arrayinit(rows:Int,columns:Int){self.rows=rowsself.columns=columnsarray=Array(count:rows*columns,repeatedValue:nil)}subscript(column:Int,row:Int)->T?{get{returnarray[(row*columns)+column]}set{array[(row*c

swift - 如何从一个类 xcode uitesting 运行特定测试

我正在使用XCTest(Swift)在xcode中创建ui测试例如,我如何运行一个类(class)的2-3个测试而不启动该类(class)的其余测试?是否可以将一些测试添加到套件或运行并从命令行运行只是必要的套件/运行?根据XCTestSuite文档,有一个选项可以创建自定义测试套件,但我还没有找到它的任何示例。 最佳答案 您可以在“测试”菜单下调整要在方案中运行的测试。在“编辑方案”>“测试”窗口中的显示三角形层次结构中将有一个测试类和测试列表,您可以在其中选择或取消选择测试。当您在选择该方案的情况下运行测试时,只会运行您选择的测

swift - XCTestCase 可选实例变量

为什么我的可选实例变量是nil,而实际上我将它设置为非nil?代码:classFooTests:XCTestCase{varfoo:Int?functest_A_setFoo(){XCTAssertNil(foo)foo=1XCTAssertNotNil(foo)}functest_B_fooIsNotNil(){XCTAssertNotNil(foo)}}test_A_setFoo()成功,而test_B_fooIsNotNil()失败 最佳答案 来自FlowofTestExecution(强调):Foreachclass,tes

ios - XCTestCase : UIApplication. shared.keyWindow 返回 nil

当我打电话UIApplication.shared.keyWindow尝试在我的测试类中设置RootViewController,关键窗口返回nil。为什么会这样?这是我设置Storyboard的方式:lettestBoard=UIStoryboard(name:"TestStoryboard",bundle:Bundle(for:type(of:self)))letvc=testBoard.instantiateViewController(withIdentifier:"TestController")UIApplication.shared.keyWindow?.rootView

ios - 无法覆盖 Swift XCTestCase 中的 init() 函数

出于以下几个原因,我想在UI测试中覆盖XCTestCase的init函数:要在setUp()之外启动应用程序,这样应用程序就不需要为每次测试重新启动(这很乏味并且会减慢测试速度)要初始化通过应用程序提供一般导航的其他类,我必须使用测试用例(self)对其进行初始化。我现在的样子是这样的:importXCTestclassUITest:XCTestCase{letapp=XCUIApplication()//Helperpackagesvarhelper:UITestHelper!overridefuncsetUp(){super.setUp()//Helperpackageinstan

ios - ld :Framework not found for architecture i386

我想在我的框架中测试一个方法,我写了一个简单的测试用例。但它无法执行,xcode给我错误:ld:frameworknotfoundV***mentsforarchitecturei386clang:error:linkercommandfailedwithexitcode1(use-vtoseeinvocation)我仔细检查了该框架是否已添加到嵌入式二进制文件以及构建阶段部分。这是我的测试文件:importXCTest@testableimportMYClassclassMYClassTests:XCTestCase{overridefuncsetUp(){super.setUp()

objective-c - 在 XCTestCase 中使用 URL 方案

我想运行一个等待浏览器响应的测试。测试目标有一个Info.plist,我可以在其中注册自定义URL方案。但是那些从来没有被调用过。我知道测试目标不是真正的应用程序。有办法吗?编辑(为了赏金):我想为调用openUrl("tel://"+somephonenumber)的类编写集成测试。我如何在XCTestCase中订阅此URL方案? 最佳答案 问题已重新标记为OSX,因此我的回答不再有效原始答案这是不可能的。基本原因是测试连接到一个正在运行的应用程序实例,它们无法控制设备,它们作为应用程序的一部分运行。您或许可以打开该URL,但您将

ios - XCTestCase - iOS UI 测试 - 处理具有多个单元格的 UITableViews

我正在试验(Xcode7)UIXCTestCase测试用例,我偶然发现了一个UIView的问题,其中我有一个包含许多单元格(4000+)的UITableView。当应用程序正常运行时,仅渲染可见单元格,完全没有性能问题。但是,如果我在记录XCTestCase的上下文中运行该应用程序并导航到此屏幕,模拟器会卡住,这显然是因为每个单元格都呈现为好像它是可见的。如果我尝试手动编写导航脚本并运行XCTestCase,则测试用例会在导航到此屏幕后立即失败,并退出并显示“UI测试失败-无法获取刷新的快照”,这显然又是因为所有单元格都被渲染了,这没有及时完成。我认为这与以下事实有关:测试框架构建了所

ios - XCTestCase - iOS UI 测试 - 处理具有多个单元格的 UITableViews

我正在试验(Xcode7)UIXCTestCase测试用例,我偶然发现了一个UIView的问题,其中我有一个包含许多单元格(4000+)的UITableView。当应用程序正常运行时,仅渲染可见单元格,完全没有性能问题。但是,如果我在记录XCTestCase的上下文中运行该应用程序并导航到此屏幕,模拟器会卡住,这显然是因为每个单元格都呈现为好像它是可见的。如果我尝试手动编写导航脚本并运行XCTestCase,则测试用例会在导航到此屏幕后立即失败,并退出并显示“UI测试失败-无法获取刷新的快照”,这显然又是因为所有单元格都被渲染了,这没有及时完成。我认为这与以下事实有关:测试框架构建了所

ios - 将应用程序发送到后台并从 XCTest 中的最近应用程序重新启动它

我一直在寻找解决我的问题的方法,我需要将我的应用程序发送到后台并在特定时间间隔后从最近重新启动它。deactivateAppForDuration()用于在InstrumentsUIAutomation中实现此目的。有人知道如何在XCTest中实现吗? 最佳答案 不确定这是否有效,因为我还没有测试过,但值得一试。如果不出意外,它应该可以让您知道去哪里看。XCUIApplication类提供以编程方式终止和启动您的应用程序的方法:https://developer.apple.com/reference/xctest/xcuiappl