我正在将Objective-C应用程序转换为Swift,并使用现有的Objective-C单元测试来确认更改是否正常工作。我用Swift替换了几个Objective-C应用程序文件并执行了以下操作:在需要的地方添加了“@objc类”(除了继承Objective-C类),将Swift文件定位到MyApp和MyAppTest目标,为两个目标设置“EnableTestabilityYes”(仅调试)。在单元测试文件中,我添加了#import"MyAppTests-Swift.h"并删除了#import"MyObjcClass.h"。我还从构建阶段编译源列表中删除了“MyObjcClass.m
我有一个之前能够测试的MacOSX应用程序-但是当我现在运行测试时-它会工作一次然后失败并在控制台中显示以下错误。我需要做一些激烈的事情才能让它工作:如果我更改派生数据文件夹的位置并清理构建文件夹-然后它通常会再次运行一次或两次,但当我再次运行测试时它会再次发生。关于我可以做些什么来永久修复它的任何想法-下面对我来说几乎是希腊语..我尝试了以下方法:将派生数据移动到文档中从Appstore安装新的Xcode。删除和重新添加证书和配置文件2017-01-1516:41:51.247064XXXXXX[51736:892136]Unabletoloadconfigurationdatafr
我需要一组代码来仅在测试应用程序(UITesting)时运行,而不是在运行应用程序时运行。我一直在尝试查找是否正在运行该应用程序或者它是一个UITesting?。这是xcode8及更高版本的新功能。有人可以帮我解决这个问题吗 最佳答案 现在我们可以简单地用“UITesting”的一行代码来检查这一点。[[[NSProcessInfoprocessInfo]arguments]containsObject:@"-ui_testing"]-ui_testing只会在测试应用时出现。 关于io
我在iOS应用程序中创建了第一个单元测试目标,只需单击左侧导航器测试选项卡内的加号图标即可。(测试目标设置为主应用)单元测试目标成功创建了自己,但是当我尝试运行预生成的测试时,它会输出一条错误消息。错误消息显示找不到构建输入文件。更具体地说,找不到文件/Plugins/XXXTests.xctest/XXXTests。我仔细检查了一下,实际上该文件不在该目录中。虽然我找不到任何与此问题类似的东西,但我尝试了所有接近它的东西,但似乎没有任何东西可以解决问题。如有任何帮助,我们将不胜感激! 最佳答案 对我来说,这是因为测试源文件没有包含
最近我试图使用单元测试验证我编写的对象是否正确解除分配。然而,我发现无论我尝试什么,对象都不会在测试完成之前解除分配。因此,我将测试简化为一个简单的示例(见下文),它试图证明使用弱变量进行对象释放的基础知识。在我看来,强引用应该在测试方法退出后停止保留对象,而弱引用应该在下一个运行循环引用时为nil。但是,弱引用永远不会为nil,并且两个测试都失败了。我在这里误解了什么吗?以下是完整的单元测试。classMock{//classtype,shouldbehavewithreferencesemanticsinit(){}}classDeallocationTests:XCTestCas
我正在测试一个iOS应用程序,目前我正在使用isHittable检查特定的XCUIElement是否存在。我想知道我们是否还可以检查XCUIElement在View上的位置。例如,如果我们在View的右下角有一个按钮,我们可以使用XCTest框架检查它是否真的在右下角吗?我查看了XCTest框架的Apple文档,但没有得到任何线索。任何帮助将不胜感激。 最佳答案 XCUIElement有一个属性frame您可以使用它来查找相关元素的坐标。letbutton=XCUIApplication().buttons["someButton"
目前正致力于将我的UITest运行结果集成到TestRail中,因此在每次测试运行后,它都会在testrail中将我的测试标记为Pass\Fail。我的想法是:在CI中创建一个“预构建”脚本,该脚本将在testrail中创建测试运行。在执行自动化过程中,在测试tearDown()中获取测试结果(无论测试是否失败),将其全部保存到json文件中。-这里是第一个问题,如果测试失败了怎么获取?完成所有测试后,运行“构建后”脚本以获取更新的json文件并将请求发送到测试轨道(这将标记通过/失败测试)任何已经从事此工作的人,听起来适合您吗?有什么建议吗?测试示例:importXCTestclas
我正在测试一个对数据进行采样的应用程序。我正在设置的部分测试需要存储一些数据点。为此,我想让XCTest执行采集方法,然后执行sleep()函数,然后再调用采集方法。虽然有等待超时期望的方法,但似乎没有简单的wait()/sleep()方法可以简单地暂停执行指定的时间量。知道如何使用Xcode6和Swift做到这一点吗? 最佳答案 您可以使用NSTimer来间隔您的数据调用,而不是使用sleep锁定应用程序funcdataCall(timer:NSTimer){//getdata}letmyTimer:NSTimer=NSTimer
我是使用XCTest框架进行快速自动化测试的新手。在我的工作中,我面临着正确安排测试中的某些代码部分请解释在类的开头和在某个函数中声明变量的区别。首选哪种方式?Var.1classsomeClass:XCTestCase{letapp=XCUIApplication()funcsomeFunc{print(app.debugdescription)}}变种。2classsomeClass:XCTestCase{funcsomeFunc{letapp=XCUIApplication()print(app.debugdescription)}} 最佳答案
我正在使用XCTest(Swift)在xcode中创建ui测试例如,我如何运行一个类(class)的2-3个测试而不启动该类(class)的其余测试?是否可以将一些测试添加到套件或运行并从命令行运行只是必要的套件/运行?根据XCTestSuite文档,有一个选项可以创建自定义测试套件,但我还没有找到它的任何示例。 最佳答案 您可以在“测试”菜单下调整要在方案中运行的测试。在“编辑方案”>“测试”窗口中的显示三角形层次结构中将有一个测试类和测试列表,您可以在其中选择或取消选择测试。当您在选择该方案的情况下运行测试时,只会运行您选择的测