如何根据Xcode UI测试是否正在运行来定义全局变量?我正在尝试这样做:
#if UITESTS
let api = StubbedAPI()
#else
let api = RealAPI()
#endif
Run Code Online (Sandbox Code Playgroud)
这些是全局变量,因此我无法调用NSProcessInfo.processInfo().environment或NSProcessInfo.processInfo().arguments在文件范围内.
我正在尝试为正在使用的应用程序配置快照,该快照已经可以在英语版本中使用,但是在本地化版本中,我不知道如何为MKMapView中的地图中的图钉分配可访问性标识符怎么做呢?
谢谢。
这就是我如何清除UITextFields和UITextViews在UITests。
extension XCUIElement {
func clear() {
tap()
while (value as! String).characters.count > 0 {
XCUIApplication().keys["delete"].tap()
}
}
}
Run Code Online (Sandbox Code Playgroud)
使用示例:
descriptionTextView.type("Something about Room.")
descriptionTextView.clear()
Run Code Online (Sandbox Code Playgroud)
如果我运行UITests,则始终点击UITextView的开头。
到底如何点击?
我正在为我的应用程序进行ui测试,并坚持点击我的应用程序的登录按钮.我无法找到我给出标识符注册按钮的元素(元素是索引的第3个,这不是问题).
let cellQuery = self.app.tables.cells.element(boundBy: 3)
let signInButton = cellQuery.buttons["signup button"]
if signInButton.exists {
signInButton.tap()
}
Run Code Online (Sandbox Code Playgroud) 因此,我试图开始fastlane screenshot工作,这意味着使Xcode UITest工作。。。我构建了一个使用3栏符号作为滑出按钮的Ionic应用程序,而这种情况对于webapps来说是微不足道的。
但是,当我使用uITest记录时,它会误解按钮并最终表示为
app.buttons["?"].tap()
当它尝试运行保存的UI命令时,显然会因此而窒息并使测试崩溃……除了使用诸如此类的标签文本之外,还有其他方法可以表示按钮吗?
看来它可以使用ID或NAME作为按钮标识符,但是我还没有找到解决此问题的方法。
我需要使用大量的模拟器在xcode服务器上运行持续集成.有没有办法强制它始终接受权限警报,如:
允许"App"访问您的照片
等等...
自从升级到iOS 10.3以来,我注意到swipeUp()函数只刷了很少量的表视图.其中1次swipeUp()调用已经足够了,现在我有10次调用来做同样的事情.
有人得到了解决方案吗?
我是Xcode和Swift的新手。我只是尝试使用快速语言创建UITest。我尝试运行仅打印“ Hello world”的简单测试时,II导致此构建失败并显示错误:
“ ld:入口点(_main)未定义。对于体系结构x86_64 clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)”
有人遇到同样的问题吗?如果可以分享解决方法,不胜感激。顺便说一句,我正在使用Xcode 9.1和Swift 4
我愿意在我的应用程序中添加单元和UI测试。
我首先成功配置了单元测试,然后尝试对UI测试进行同样的操作。这是我的Podfile,添加了新的UI Testing Bundle目标后:
platform :ios, '8.0'
use_frameworks!
inhibit_all_warnings!
def shared_pods
pod 'Bolts'
pod 'Branch'
pod 'FBSDKCoreKit'
pod 'FBSDKLoginKit'
pod 'FBSDKShareKit'
pod 'GoogleAnalytics'
pod 'GooglePlaces'
pod 'Parse'
pod 'Toast-Swift'
end
target 'MyTarget' do
shared_pods
end
target 'MyTargetUITests' do
shared_pods
end
target 'MyTargetUnitTests' do
shared_pods
end
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试运行自动创建的MyProjectUITests测试用例时,它仅包含基本设置,甚至没有@testable import MyProject:
import XCTest
class MyProjectUITests: XCTestCase {
override func setUp() {
continueAfterFailure = false
XCUIApplication().launch()
}
}
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
正在运行测试...无法加载捆绑包“ MyProjectUITests”,因为它已损坏或缺少必要的资源。尝试重新安装捆绑软件。
(dlopen_preflight(/var/containers/Bundle/Application/5A1FE39F-E675-4A47-9BF4-FBCDB96F5821/MyProjectUITests-Runner.app/PlugIns/MyProjectUITests.xctest/MyProjectUITests):库未加载:@ rpath / libswiftSwiftOnoneSupport.dylib
引用自:/private/var/containers/Bundle/Application/5A1FE39F-E675-4A47-9BF4-FBCDB96F5821/MyProjectUITests-Runner.app/PlugIns/MyProjectUITests.xctest/Frameworks/Toast_Swift.framework/Toast_Swift
原因:找不到图片)
怎么了?谢谢你的帮助。
编辑:作为信息,当我 …
xcode-ui-testing ×10
xcode ×7
ios ×6
swift ×4
fastlane ×1
ios10.3 ×1
ui-testing ×1
uitableview ×1
uitextfield ×1
uitextview ×1
xctest ×1