Latest 0.1.0
License MIT
Platforms ios 8.0, osx 10.10, watchos 2.0, tvos 9.0
Dependencies RxSwift, RxBlocking


Swift 3
GitHub release
SwiftPM compatible
Build Status
GitHub license

Taps is a lightweight Unit Test library optimized for asynchronous code.
It has been implemented using RxSwift and therefore you can easily test your own Observables with ease,
but no RxSwift knowledge is needed.

As the generated output is TAP13 compatible, you can easily customize it yourself.
You can either use Taps integrated TapsHarness or you can use the pod TestHarness to customize the output.

You’ll find the autogenerated docs here.


Taps assumes all tests to be concurrent. That said it is quite easy to run them:

taps.test("test async completion", timeout: 0.1) { t in {
    t.end() // this terminates the test

But instead of always being forced to call the t.end() when testing synchronous code,
you can add a plan for all expected tests.

taps.test("test does not throw on return", plan: 1) { t in
  t.doesThrow("does throw is ok when throwing") {
    return 1

Since Taps uses RxSwift under the hood it really shines, when it comes to testing Observables.
If your tested Observable completes, the test will automatically be finished!

tape.test("just emits", timeout: 0.01) { t in
    .map { $0 + 1 }
      onNext: t.notEqual(to: 3, "just emits 3"),
      onError: "just won't throw'")


Finite is available under the MIT license. See the LICENSE file for more info.

Latest podspec

    "name": "TestHarness",
    "version": "0.1.0",
    "summary": "TestHarness serves a datastructure for TAP13 compatible output.",
    "description": "TestHarness implements a data structure to represent TAP13 output and serves a simple printer for it.",
    "homepage": "",
    "license": "MIT",
    "authors": {
        "Valentin Knabel": "[email protected]"
    "social_media_url": "",
    "source": {
        "git": "",
        "tag": "0.1.0"
    "source_files": "Sources/TestHarness/**/*.swift",
    "platforms": {
        "ios": "8.0",
        "osx": "10.10",
        "watchos": "2.0",
        "tvos": "9.0"
    "pod_target_xcconfig": {
        "SWIFT_VERSION": "3.0"
    "dependencies": {
        "RxSwift": [
        "RxBlocking": [
    "pushed_with_swift_version": "3.0"

Pin It on Pinterest

Share This