问题标签 [fbsnapshottestcase]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1732 浏览

ios - 测试在 Xcode 中通过,但在 Circle CI 中失败

问题:对于这个拉取请求,测试没有通过 CircleCI,但测试在本地通过。为什么?


CircleCI测试输出显示所有FBSnapshotTestCase测试均失败。例如:

✗ testAdjustsFontSizeToFitWidth,((comparisonSuccess__)为真)失败 - 快照比较失败:错误域 = FBSnapshotTestControllerErrorDomain 代码 = 1“无法加载参考图像。” UserInfo=0x7f85f36b0a50 {NSLocalizedFailureReason=未找到参考图像。您需要在记录模式下运行测试,NSLocalizedDescription=Unable to load reference image., FBReferenceImageFilePathKey=/Users/distiller/TTTAttributedLabel/Example/TTTAttributedLabelTests/ReferenceImages_32/TTTAttributedLabelTests/testAdjustsFontSizeToFitWidth@2x.png}

[…]

✗ testAttributedTruncationToken, ((comparisonSuccess__) is true) failed - 快照比较失败:错误域=FBSnapshotTestControllerErrorDomain Code=1“无法加载参考图像。” UserInfo=0x7f85f35b06d0 {NSLocalizedFailureReason=未找到参考图像。您需要在记录模式下运行测试,NSLocalizedDescription=无法加载参考图像。,FBReferenceImageFilePathKey=/Users/distiller/TTTAttributedLabel/Example/TTTAttributedLabelTests/ReferenceImages_32/TTTAttributedLabelTests/testAttributedTruncationToken@2x.png}

但是,相同的测试在本地通过:

图片

在 CircleCI 上,测试使用ReferenceImages_32不存在的目录:

但是,图像确实存在于ReferenceImages_64. 我希望_64使用该目录,因为该circle.yml文件指定使用 iPhone 6 模拟器:

0 投票
1 回答
1557 浏览

ios - 关闭屏幕时未调用 UICollectionView performBatchUpdates 完成

我正在为我的视图控制器使用快照测试。这是视图控制器在测试中的初始化方式:

我的视图控制器包含 UICollectionView。当我使用 performBatchUpdates 执行集合视图更新时,即使更新块已完成,也永远不会调用完成。

我认为这与集合视图的屏幕外渲染有关。有人有类似问题的经验吗?我缺少什么来说服 UICollectionView 它在屏幕上?

0 投票
1 回答
95 浏览

ios - 如何检查我是否在 iPhone6s Plus 模拟器上运行

我有每个设备的快照测试。我想检查我在具有快照的特定模拟器上运行的测试。

因此,例如,我想测试当前的模拟器是 iPhone6sPlus9.2,因为我没有为我拥有的许多其他模拟器类型记录快照。

我尝试了许多变体,例如:

还有这里的代码https://github.com/erica/uidevice-extension/

和来自的代码

// UIDevice+YYAdd.h // YYKit https://github.com/ibireme/YYKit

但两者都返回不相关的值,例如设备类型的“x86”。

0 投票
1 回答
613 浏览

ios - 运行 Xcode 测试时未找到 FBSnapshotTestCase 图像

不知道为什么要举报FBSnapshotTestCase image not found while running Xcode test

我尝试FBSnapshotTestCase在 Target中链接ChartTests,但仍然看到相同的错误。

我不熟悉这个,有人可以帮忙吗?预先感谢。

重现:

从https://github.com/danielgindi/Charts下载项目

导航到项目根目录,

  1. (可选)运行carthage bootstrap以安装依赖项。该项目有一个依赖检查,所以如果你不运行它,它会在启动测试时运行它。

  2. 进入

    xcodebuild -project 'Charts.xcodeproj' -scheme 'ChartsTests' -configuration 'Debug' -sdk iphonesimulator -destination id='E40B5365-EF82-430D-A767-2A37995CCEE1' 清洁构建测试

目标 id 可以是机器上模拟器的任何 uuid。

然后它报告:

0 投票
1 回答
196 浏览

swift - 当表格视图中有超过 12 个或更多项目时,我将如何编写测试以确保 UI 按钮“显示所有提供者”出现?

所以我对测试完全陌生,我只需要一些帮助来弄清楚我将如何为视图模型枚举中的三个案例(none、dontSeeProvider、showAllProviders)中的每一个编写一个测试。

我一直无法弄清楚如何为案例“showAllProviders”和“dontSeeProviders”编写测试。

这是视图模型:

这是视图控制器:

我为“无”情况编写了一个测试,但无法弄清楚其他两种情况:

0 投票
1 回答
75 浏览

ios - Xcode:模拟器正在运行哪个设备?使用 FBSnapshotTestCase 和 Nimble-Snapshot 比较跨设备的视图

我目前正在使用 FBSnapshotTestCase 和 Nimble-Snapshot 在我的项目中拍摄 ViewControllers 的快照。

我知道在 Realm UI 和快照测试视频中 Luis 提到我们可以跨设备测试视图(iPhone5 vs iPhone 6+ 等)。

我想知道我在模拟器中运行的是哪个设备,但是当我使用这篇文章中的这个扩展打印出型号名称时iOS:如何在 Swift 中确定当前的 iPhone/设备型号?
let modelName = UIDevice.current.modelName

它只会说我在模拟器中运行。

我正在关注这篇 Stack Overflow 帖子如何确定在模拟器中运行的设备? 但使用 FBSnapshotTestCase 不一定与“可用功能”相关。有没有人遇到过类似的问题?

0 投票
2 回答
161 浏览

xcuitest - XCUITest 元素快照无法闪烁光标

我们正在使用 FBSnapshottestcase 作为 XCUITest 案例的一部分来拍摄快照。我们有一个具有 UITextField 的 ScrollView。我们在文本字段中输入文本并拍摄快照以验证元素在输入文本时的行为是否正确(出现清除按钮)。我们遇到的问题是,当您在文本字段中键入时,会出现一个闪烁的光标。根据拍摄快照时闪烁光标的状态,测试将失败或通过。有没有办法禁用 XCUITest 的闪烁光标?

0 投票
1 回答
119 浏览

xctest - FBSnapshotTestcase 与 xcuiscreenshot

我试图了解 FBSnapshotTestcase 解决的用例。我们已经有了名为 xcuiscreenshot 的原生苹果库。每当任何 UITest 失败时,它都会自动截取视图以供参考。

FBSnapshotTestcase 与先前存储的参考图像进行比较,以根据所需的 UI 声明屏幕失败。

但实际上使用 FBSnapTestCase 优于 XCUIScreenshot 的确切优势是什么?

0 投票
1 回答
202 浏览

ios - FBSnapshotTestCase 不会创建 FB_REFERENCE_IMAGE_DIR 和 IMAGE_DIFF_DIR 文件夹

这是我的测试:

类 ZabiTests:FBSnapshotTestCase {

}

这就是环境变量:

我第一次使用 recordMode = true 运行,然后我在没有此行的情况下运行,但我仍然得到快照比较失败

(vc 是好的,红色背景而不是 nil )

在此处输入图像描述