小编Aka*_*ndu的帖子

如何使用 XCTests 测试打印语句?

我正在尝试测试一个函数是否打印出一些东西。我怎样才能用 XCTests 做到这一点?如果这是可能的,是否有事实理由去做而不是这样做?

谢谢!

tdd unit-testing ios xctest swift

8
推荐指数
2
解决办法
3529
查看次数

XCTests 提前取消

我正在使用 XCTests 在 Xcode 中运行一些单元测试。当我运行它们时,所有测试要么通过,要么失败,并显示小绿色对勾或红十字。 主要问题似乎是我的测试过早取消并且它们没有正常运行。

以下是更多信息:

  1. 运行测试时,没有任何以前没有发生的控制台输出。我的意思是我之前确实有预期的控制台输出,现在我没有。
  2. 运行测试时,不需要我解锁 iPhone 即可运行该应用程序。此外,即使我的 iPhone 已解锁,它也不会像以前那样运行应用程序。
  3. 运行我的测试时,它完成编译,然后很快在 Xcode 的信息栏中说“正在取消...”(顶部和居中的栏,在您构建项目时显示警告和“正在构建”)。

  4. 我正在使用 .xcworkspace 文件(因为我使用的是 Pod)

  5. 我有一个构建方案,即项目。
  6. 我遇到了同样的问题,加上绿色检查和红色叉号的问题在运行后没有出现在我的测试中,有时我的测试根本没有出现在测试选项卡中。我通过删除 Podfile.lock 文件、Pods 目录和 .xcworkspace 目录,然后运行 ​​Pod install 来解决这些问题。这样做之后,我遇到了同样的问题,除了那两个问题。
  7. 我尝试在不同的分支上运行新的测试,同样的问题。
  8. 在遇到任何这些问题之前,我只是在编写测​​试并尝试不同的编写测试方法。我已经恢复了所有这些更改,但仍然出现这些错误。

  9. 在没有模拟器的情况下运行测试时,我也发现了同样的问题。

  10. 当我从 Xcode 编译并运行应用程序时,它运行良好。

关于如何解决这个问题的任何建议都会很棒!如果需要,请询问更多详细信息。

这是我运行测试的视频。我建立了一个新项目和新的单元测试目标来展示发生了什么。注意:那里有一个空测试和一个应该总是通过的测试:

在此处输入图片说明

如您所见,问题在于测试未正常运行。绿色和红色的十字不再出现,应该总是通过的测试失败了,没有控制台输出,并且在顶部信息栏中几乎立即说“取消......”。关于为什么会发生这种取消的任何建议都会很棒!

以下是代码设置方式的一些屏幕截图:

在此处输入图片说明 在此处输入图片说明

这也是代码(它只是创建新单元测试后的基本代码,除了我添加了一个应该始终通过的断言):

import XCTest
@testable import example

class exampleTests: XCTestCase {

    override func setUp() {
        // Put setup code here. This method is called before the invocation of each test method in the class.
    }

    override func tearDown() …
Run Code Online (Sandbox Code Playgroud)

xcode unit-testing ios xctest swift

5
推荐指数
1
解决办法
2133
查看次数

标签 统计

ios ×2

swift ×2

unit-testing ×2

xctest ×2

tdd ×1

xcode ×1