问题标签 [sentestingkit]

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 投票
2 回答
532 浏览

xcode - 单元测试期间的 Xcode CI bot 错误 (Unexpected TestSuiteWillFinish)

我们最近设置了一些带有 iOS 应用程序的Xcode 机器人来自动构建和测试我正在开发的应用程序。如果我只是构建和分析,构建过程可以正常工作。如果我将它设置为运行测试,它最终会出现大量以Unexpected TestSuiteWillFinish. 例如,最近的运行显示:

运行测试套件 TimeClockTestCase 遇到错误(Unexpected TestCaseDidFinish) testParseResponseString 遇到错误(Unexpected TestSuiteWillFinish) testGetIntegrationID 遇到错误(Unexpected TestSuiteWillFinish)

而之前的只有一个错误:

testAddChildObjectTypeTimeClockEvent 遇到错误 (Unexpected TestSuiteWillFinish)

集成结果显示所有测试都已通过,无论显示什么错误。如果我直接通过 Xcode 运行测试(而不是在服务器上运行机器人),则没有错误并且通过了相同数量的测试。

是什么导致了这些错误,我该如何消除它们?


以下是 TimeClockTestCase 的日志:

0 投票
5 回答
29883 浏览

ios - 测试钥匙串 - OSStatus 错误 -34018

我正在尝试使用 Xcode 上的基本 SenTest 框架测试读取和更改钥匙串的代码。该代码在设备上运行良好,但是当我开始测试时,每次我想用SecItemDelete/ SecItemAdd/etc 触摸钥匙串时都会遇到这些错误。

The operation couldn’t be completed. (OSStatus error -34018 - client has neither application-identifier nor keychain-access-groups entitlements)

iOS Team Provisioning Profile: *我为构建目标和测试目标提供了 匹配的通配符配置文件 ( )。

这些(未经证实的)堆栈溢出答案:

从 errSecItemNotFound 25300 中的钥匙串结果中读取

说我每次使用钥匙串时都需要一个与我的应用标识符匹配的配置文件,但这是不对的,否则我会在测试目标之外遇到相同的错误。

深入挖掘,(未经证实的)答案在这里:

SecItemAdd 和 SecItemCopyMatching 返回错误代码 -34018 (errSecMissingEntitlement)

暗示钥匙串中可能存在错误,更一般地说Security.framework,这很可怕。

我的问题是;有没有人只有在测试目标上时才遇到 OSStatus 错误 -34018 ?这似乎是我看到的行为。

编辑:添加JorgeDeCorte在下面的答案中使用的这个答案。

如果问题在您的单元测试目标中存在,该线程似乎包含解决方案。

https://devforums.apple.com/message/917498#917498

基本上,您必须通过在测试目标中添加以下内容作为运行脚本来对您的 .xcttest 文件夹进行代码设计。

codesign --verify --force --sign "$CODE_SIGN_IDENTITY" "$CODESIGNING_FOLDER_PATH"

在设备上测试我的钥匙串时,我遇到了很多 -34018 错误,这设法修复了它。

如果您的测试目标中不存在问题,这可能不是解决方案。

所以我想解决方案是:强制签署你的测试目标。

0 投票
2 回答
562 浏览

ios - OCMock:模拟协议未正确停止

我有一个使用 OCMock 的测试用例,它执行以下操作:

当我运行测试用例时,同样使用 CAAAuthenticationDelegate 协议的第二个测试用例(完全不同的测试类和文件)因 SIGABRT 而失败:

但是,我在第二个测试用例中没有使用任何模拟。我试图清除模拟stopMocking但没有成功。

以下模拟设置可以正常工作:

谁能告诉我,为什么会这样?

0 投票
2 回答
15529 浏览

objective-c - 如何从情节提要中加载原型单元?

有没有办法加载原型单元以及故事板中定义的任何 IBOutlet 连接?

更新

我想对单元格进行单元测试(该母校的 UICollectionViewCell),因此想在 UIViewController 上下文之外加载它。

实际上,就像您可以从 nib 加载自定义视图一样,指定其文件的所有者并设置其 IBOutlet(s)。

0 投票
3 回答
1712 浏览

ios - 针对 App 和测试目标的链接框架

我有一个在我的普通 App 目标以及相应的 UnitTest 目标中使用的自定义框架。事实证明,这会混淆运行时,因为它有多种选择,因此无法选择正确的实现:

如果您尝试检查对象的类层次结构或进行任何其他与类相关的检查,这当然会导致奇怪的行为。

所以归结为以下两个问题:

  1. 我没有看到类似 UIKit 组件的日志,但这个框架也链接到这两个目标。我是否错误地编译了框架?
  2. 这只是我错过的一个微不足道的配置问题吗?

PS:我已经检查过类似的帖子,例如12,但是尽管一切都按照描述进行了配置,但问题仍然存在。

0 投票
1 回答
199 浏览

xctest - 单元测试用例:XCTestCase vs Sentestcase

我正在为我的应用程序编写测试用例。只是想知道在 XctestCase 和 SentestCase 之间选择哪一个?

任何输入将不胜感激。