Tag: xctest

在testing项目中找不到“XXX-Swift.h”文件

我试图调用一个NSObject子类的方法,让我们说在testing项目中的XCTestCase子类的方法内的“主”项目。 主项目的NSObject子类导入“XXX-Swift.h”头文件(我正在混合Swift和Objective-C代码)。 所有工作正常,当我运行主项目,但是当我运行testing调用该子类的对象时,我得到一个错误,说在导入中的Swift头文件没有find。 我想我错过了testing目标中的一些设置,但是我没有find哪个…我应该检查什么? 或者我应该怎么做才能解决这个问题?

Xcode 7.0 XCTest dyld:无法加载插入的库IDEBundleInjection

我在我的iOS项目上运行unit testing,当它运行时,它崩溃并吐出来: dyld: could not load inserted library '/private/var/mobile/Containers/Data/Application/1CAB64C8-D730-427B-8E9E-BD5E152ACFD6/tmp/IDEBundleInjection.framework/IDEBundleInjection' because no suitable image found. Did find: /private/var/mobile/Containers/Data/Application/1CAB64C8-D730-427B-8E9E-BD5E152ACFD6/tmp/IDEBundleInjection.framework/IDEBundleInjection: mmap() error 1 at address=0x00436000, size=0x00004000 segment=__TEXT in Segment::map() mapping /private/var/mobile/Containers/Data/Application/1CAB64C8-D730-427B-8E9E-BD5E152ACFD6/tmp/IDEBundleInjection.framework/IDEBundleInjection 我正在使用XCode 7.0并在运行iOS 8.3的iPod上进行testing。 我已经删除了派生的数据,我已经重新启动XCode,它仍然没有奏效。

如何在iOS 7.1中使用NSURLSessiontestingHTTP请求和响应?

我想知道如何使用NSURLSession“unit testing”HTTP请求和响应。 现在,我的完成块代码在作为unit testing运行时不会被调用。 但是,当从AppDelegate (didFinishWithLaunchingOptions)中执行相同的代码时,将调用完成块中的代码。 正如在这个线程中所build议的, NSURLSessionDataTask dataTaskWithURL完成处理程序没有被调用 ,需要使用信号量和/或dispatch_group“确保主线程被阻塞,直到networking请求结束。 我的HTTP发布代码如下所示。 @interface LoginPost : NSObject – (void) post; @end @implementation LoginPost – (void) post { NSURLSessionConfiguration* conf = [NSURLSessionConfiguration defaultSessionConfiguration]; NSURLSession* session = [NSURLSession sessionWithConfiguration:conf delegate:nil delegateQueue:[NSOperationQueue mainQueue]]; NSURL* url = [NSURL URLWithString:@"http://www.example.com/login"]; NSString* params = @"username=test@xyz.com&password=test"; NSMutableRequest* request = [NSMutableURLRequest requestWithURL:url]; [request setHTTPMethod:@"POST"]; [request […]

独立视图上的iOS UItesting

我正在尝试在我的iOS项目中joinUItesting,但是有一件事仍然让我担心,看起来你写的所有testing都必须从应用程序的开始开始, 例如,如果我要testinglogin屏幕后面的视图,我的testing必须先在login屏幕上运行,input用户名/密码,单击login,然后转到我要testing的视图。 理想情况下,login视图和下一个视图的testing将完全隔离。 有没有办法做到这一点,或者我完全错过了UItesting背后的哲学?

如何在Xcode的iOS UItesting中select一个select器视图项?

我有一个select器视图,几个项目:“红色”,“绿色”,“黄色”,“黑色”。 在我的UItesting中,我需要从中select一个特定的“绿色”项目。 我正在使用Xcode 7入侵的XCTest UItestingAPI。 到目前为止我所做的是在unit testing中将整个拾取器视图向上滑动。 这是不理想的,因为它始终将select器视图更改为底部项目(向上滑动时)。 let app = XCUIApplication() app.launch() app.pickers.elementAtIndex(0).swipeUp() XCTAssert(app.staticTexts["Selected: Black"].exists) 另一个但非常相似的方式来改变select器视图是调用pressForDuration … thenDragToElement ,这不是我想要的。 app.pickers.elementAtIndex(0).pressForDuration(0.1, thenDragToElement: someElement) 当我使用UItestingloggingfunction时,它不loggingselect器视图滚动事件。 当我点击select器视图项目时,它会logging下来: app.pickerWheels["Green"].tap() 但在testing运行时实际上并不工作(可能是因为它需要在点击之前先滚动select器视图)。 这是testing的演示应用程序。 https://github.com/exchangegroup/PickerViewTestDemo 更新 现在可以select自Xcode 7.0 beta 6以来的select器视图。 app.pickerWheels["Green"].adjustToPickerWheelValue("Yellow")

添加到testing目标时的IB可设置错误

我有一个简单的UIButton子类实现IBDesignable与IBInspectable VAR: @IBDesignable class Button: UIButton { @IBInspectable var borderColor: UIColor = UIColor.whiteColor() { didSet { layer.borderColor = borderColor.CGColor } } } 我没有在一个框架内使用它,它在Interface Builder中按照预期工作,但是,一旦我将这个子类添加到我的Tests目标中,它将停止渲染,并且出现以下错误: Main.storyboard: error: IB Designables: Failed to update auto layout status: dlopen(TestTests.xctest, 1): Library not loaded: @rpath/XCTest.framework/XCTest Referenced from: TestTests.xctest Reason: image not found Main.storyboard: error: IB Designables: Failed to render instance […]

从命令行运行iOS应用程序的单个XCTest(UI,Unit)testing用例

是否可以从命令行界面从iOS应用testing目标(而不是所有testing用例)运行单个testing用例或单个testing套件? 您可以使用xcodebuild从命令行运行testing,开箱即用。 当你这样做时,你运行你select的testing目标中包含的所有testing用例。 您也可以使用Fastlane进行扫描 ,尽pipe我相信您只能运行您select的构buildscheme的所有testing(如上所述),所以与xcodebuild没有区别。 您可以使用Facebook上的xctool运行特定的testing,但不使用xcodebuild,并且仅限于在模拟器上运行,而不是实际的iOStesting设备。 我发现直接运行xctest命令行实用程序的引用,但它似乎是一个未公开的function和目标DerivedData。 UItesting的这一事实很复杂, 它们的* xctest文件在一个单独的XCTRunner包中 。

添加Swift文件来testing目标没有修复unit testing

我看了很多博客,并尝试了很多东西,让我的Swiftunit testing在Xcode 6.0.1(或6.1)中工作。 我试图访问我的应用程序的目标中的类,所以我写了这一行: var vc: LoginViewController! 当然,我得到“使用未声明的types”LoginViewController'“错误。 然后我尝试将LoginViewController添加到我的testing目标,但是随后在我的项目中的其他类上出现“使用未parsing的标识符”错误。 所以我尝试将这些类添加到我的testing目标中,但是我最终得到了一个看似无穷无尽的错误来源,如下面的屏幕截图: 宣布我所有的类都是公开的,导致其他的错误,似乎是不好的做法。 是否有任何依赖许多框架和类的Swift项目中包含unit testing? 我只是想从几乎完全像本文中的代码开始。

在Xcodeunit testing中使用@testable时,“没有这样的模块”

我最近更新到Xcode 7testing版5.我试图添加一个unit testing到一个较早的项目,但我收到错误消息“没有这样的模块[myModuleName]” @testable import myModuleName行。 我试过了 使用Option Clean Build Folder清理项目 在“构build选项”中检查“启用可testing性”(debugging)设置为“是” 删除testing目标,然后重新添加iOSunit testing包 这一切都没有为这个项目工作(但我已经得到testing,在另一个项目工作)。 有没有其他人有这个问题,并解决了它?