使用UI测试,我希望应用程序响应摇动手势,我想在我的快速UI测试中以编程方式触发摇动手势.
在UI测试会话期间记录时触发摇动手势不会产生任何添加的代码.
有没有办法做到这一点?提前致谢!
我正在尝试使用Xcode 7在旧项目中添加和运行UI自动化测试.这是我做的:
现在,当我尝试运行录制的测试时,我收到以下错误:
失败:捕获"NSInternalInconsistencyException","没有通过测试配置指定的目标应用程序路径:testBundleURL:file:///xxxxxxxxxxx/PlugIns/PageonceUITests.xctest/ productModuleName :( null)testsToSkip:(null)testsToRun:(null)reportResultsToIDE:no sessionIdentifier:<__ NSConcreteUUID 0x7fc818d181a0> 7045B650-CDAF-4EC9-9738-83F78E1514D8 pathToXcodeReportingSocket:(null)disablePerformanceMetrics:no treatMissingBaselinesAsFailures:no baselineFileURL:(null)targetApplicationPath:(null)targetApplicationBundleID:(null)
对于我的应用程序,我正在尝试运行一个基本的 UI 测试,以确定当实际设备旋转时视图是否保持固定的方向。我知道如何模拟物理旋转(使用 UIDeviceOrientation),但是有没有办法获得实际视图的方向?
我刚刚开始在iOS学习UI测试.当我按下记录并点击表格的第一个索引时,它会生成这样的代码.
XCUIApplication *app = [[XCUIApplication alloc] init];
[app.tables.staticTexts[@"Apr 04 16:28"] tap];
Run Code Online (Sandbox Code Playgroud)
如果我的所有数据都是恒定的,那就好了.但这些文本会不时更改.如何修改这些代码,以便始终点击表的第一个索引?
我在专用目标上编写了XCode 7.3.1中的UI测试.我可以录制UI测试,但如果我尝试启动它(所有测试或单个测试),我收到以下错误:
无法找到包含测试包路径的测试运行器应用程序/Users/dle/Library/Developer/Xcode/DerivedData/Keecoach-exynmciqyehgmxcfxhkpksrqifsb/Build/Products/Debug-iphonesimulator/DemoKeecoachUITests-Runner.app/PlugIns/DemoKeecoachUITests.app
我真的不明白这个消息,只是看起来跑步者应用程序必须启动测试并且跑步者应用程序不存在.这DemoKeecoachUITests-Runner.app实际上并不存在于我的磁盘上.
我找不到任何其他人在任何地方提到这个问题...如果我在命令行中启动测试,我会得到相同的错误xctool.我在其他计算机上遇到同样的问题,但我没有其他项目的问题,所以它与项目有关.任何线索?
我想让我的应用程序转到后台,然后回到前台.
要使应用程序进入后台: XCUIDevice.shared().press(XCUIDeviceButton.home)
要终止应用(强制点击): XCUIApplication().terminate()
要启动应用程序: XCUIApplication().launch()
问题:当我尝试关闭并打开应用程序时,launch()方法会从后台清除应用程序,它会新打开应用程序.
我看到了这个评论.但是无法在UI测试中弄清楚它.我正在使用Swift.需要帮助!!
这是我到目前为止所做的,我只是想在标签中输出结果并根据设置结果进行测试:
func testExample() {
let app = XCUIApplication()
let enterRomanNumeralsHereTextField = app.textFields["Enter roman numerals here"]
enterRomanNumeralsHereTextField.tap()
let convertButton = app.buttons["Convert"]
//1
enterRomanNumeralsHereTextField.typeText("LL")
convertButton.tap()
XCTAssertTrue(app.staticTexts.element(matching:.any, identifier: "Roman Numerals").label == "NotValidRomanNumber")
//2
enterRomanNumeralsHereTextField.typeText("LXXXIX")
convertButton.tap()
XCTAssertEqual(app.otherElements.containing(.staticText, identifier:"Roman Numerals").element.value as! String, "89")
//3
enterRomanNumeralsHereTextField.typeText("")
enterRomanNumeralsHereTextField.typeText("LXXVIII")
convertButton.tap()
XCTAssertEqual(app.otherElements.containing(.staticText, identifier:"Roman Numerals").element.value as! String, "")
// Use recording to get started writing UI tests.
// Use XCTAssert and related functions to verify your tests produce the correct results.
}
Run Code Online (Sandbox Code Playgroud)
第一次尝试(标记为1)给出了一个构建错误,指出"无法调用非函数类型XCUIElement的值.第二次尝试构建但测试失败,因为即使标签确实产生了正确的值,测试也会将标签读取为空白让我们第三次尝试通过了测试,因为我将它与空白标签进行了比较,这就是它的显示效果.
因此,正如我上面所说,我只是想知道如何检索由"计算"或按钮按下的标签值.
你如何键入UITextView内部XCTestCase?这UITextView是第一个响应者,所以它已经有了焦点,键盘就出现了.
我试过了:
app.typeText("footer")
app.textViews.element(boundBy: 0).typeText("foobar")
app.links.element(boundBy: 0).typeText("foobar")
Run Code Online (Sandbox Code Playgroud)
由于某种原因app.textViews.count总是回来0?
我正在为我的iOS应用程序构建UI测试套件.我需要在几个不同的设备上测试我的应用程序的功能,但是现在我必须选择我想要的模拟器,运行测试,然后重复.
现在Xcode支持多个并行运行的模拟器,有没有办法同时在多个不同的设备模拟器上运行UI测试?
I have 3 screens, lets say,
默认情况下,启动应用程序时将打开“登录”屏幕。单击“忘记密码”按钮时,将显示“忘记密码”屏幕,并且在单击“帮助”链接时将打开“帮助”屏幕。
我可以通过某种方式直接打开“忘记密码”屏幕,而无需执行使用XCUITest单击按钮的过程吗?
我建议与通过adb直接打开View的意图相同的内容。
xcode-ui-testing ×10
ios ×8
swift ×4
xcode ×4
ui-testing ×2
xctest ×2
background ×1
launch ×1
shake ×1
suspend ×1
swift3 ×1
testing ×1
unit-testing ×1
xcode7 ×1
xcuitest ×1