Swiftpack.co - Swift Packages by Quick

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.

Packages published by Quick

Quick/Quick v7.0.1
The Swift (and Objective-C) testing framework.
⭐️ 9,684
🕓 5 days ago
🔖 Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
7.0.1 - re-allow async calls in AsyncSpec's xit
5 days ago
This fixes an oversight where you couldn't use async closures with `xit`. Thanks @stonko1994 for calling this out! ## What's Changed * Allow xit in the Async DSL to take in async closures by @younata in https://github.com/Quick/Quick/pull/1220 **Full Changelog**: https://github.com/Quick/Quick/compare/v7.0.0...v7.0.1
v7.0.0 - AsyncSpec and Human-Readable Test Selectors
2 weeks ago
# Highlights ## Async Test Changes Quick 7 changes how Async tests are run. Instead of forcing all tests to run in an async context, Quick 7 provides a separate Spec class for Async Tests. Create an `AsyncSpec` subclass, and all tests inside of that subclass will run in an async context. Tests inside of `QuickSpec` subclasses will have a similar behavior to what was in Quick 5. Additionally, Quick 7 changes how the DSL is defined slightly. In Quick 6 and before, the DSL was defined as a series of global functions, available to be called anywhere. In Quick 7, these functions were moved to be static methods on the new `SyncDSLUser` (which `QuickSpec`, `Behavior`, and `QuickConfiguration` conform to) and `AsyncDSLUser` (which `AsyncSpec` and `AsyncBehavior` conform to) protocols. This allows us to make sure that you are using the correct DSL for the context, and was necessary for this approach. For example: ```swift class SynchronousSpec: QuickSpec { override class func spec() { it("runs synchronously, as you'd expect") { var ocean: [String] = [] DispatchQueue.main.async { ocean.append("dolphins") ocean.append("whales") } expect(ocean).toEventually(contain("dolphins", "whales")) } } } class AsynchronousSpec: AsyncSpec { override class func spec() { it("runs the test in an async context") { var ocean: [String] = [] DispatchQueue.main.async { ocean.append("dolphins") ocean.append("whales") } await expect(ocean).toEventually(contain("dolphins", "whales")) } } } ``` ## Unencoded Test Selectors Furthermore, Quick 7 changes how test selectors are generated for `QuickSpec`. Now, both `AsyncSpec` and `QuickSpec` will use the unencoded test names as the test selectors. Test selectors are now generated by joining the `describe`/`context` blocks leading up to the `it` block with ", ". This makes test names immensely easier to read. For example, with the following spec: ```swift class MySpec: QuickSpec { override class func spec() { describe("some feature") { context("in one case") { it("has a behavior") {} } context("in another case") { it("doesn't have the earlier behavior") {} } } } } ``` will generate the following test selectors: - `some feature, in one case, has a behavior` - `some feature, in another case, doesn't have the earlier behavior` You can disable this change by setting the `QUICK_USE_ENCODED_TEST_SELECTOR_NAMES` environment variable. ## Migrating Suggestions Quick 7 is not a drop-in migration from either Quick 5 or Quick 6. Quick 5 users will have a slightly easier time upgrading, but due to `spec` being defined as a class method instead of an instance method, there will still be changes. Doing a Find & Replace of `override func spec` with `override class func spec` will take care of the low-hanging fruit. If you have any test helpers that exist as properties or methods of your QuickSpec subclasses, the you will need to either move them inside of the `spec` function, or outside to another scope. For Objective-C users, this is, for the most part, a drop-in replacement. You will only need to do anything if you do not use the `QuickSpecBegin` and `QuickSpecEnd` macros (in which case: do a find & replace of the regex `-(\s*)\(void\)(\s*)spec` with `+$1(void)$2spec`). For migrating from Quick 6 to Quick 7, it would be easiest to also do a Find & Replace of `: QuickSpec` to `: AsyncSpec`, then migrate tests that do not need to run in async contexts to be `QuickSpec`s themselves. # Auto-Generated Changelog ## What's Changed * Bump git from 1.12.0 to 1.13.0 by @dependabot in https://github.com/Quick/Quick/pull/1191 * (Temporarily) Remove async support from Quick by @younata in https://github.com/Quick/Quick/pull/1192 * Bump activesupport from 6.1.5 to 6.1.7.1 by @dependabot in https://github.com/Quick/Quick/pull/1196 * Bump danger from 9.1.0 to 9.2.0 by @dependabot in https://github.com/Quick/Quick/pull/1198 * Transition QuickSpec.spec to be a static method. by @younata in https://github.com/Quick/Quick/pull/1200 * Add async duplicate-world based support. by @younata in https://github.com/Quick/Quick/pull/1199 * Bump cocoapods from 1.11.3 to 1.12.0 by @dependabot in https://github.com/Quick/Quick/pull/1201 * Bump activesupport from 7.0.4.2 to 7.0.4.3 by @dependabot in https://github.com/Quick/Quick/pull/1203 * Bump fkirc/skip-duplicate-actions from 5.2.0 to 5.3.0 by @dependabot in https://github.com/Quick/Quick/pull/1188 * [Translation] AsyncAwait.md Korean translation by @tisohjung in https://github.com/Quick/Quick/pull/1204 * Update Nimble to v12 by @younata in https://github.com/Quick/Quick/pull/1206 * Demangle QuickSpec test names as much as possible by @younata in https://github.com/Quick/Quick/pull/1207 * Add mechanism to fallback to legacy test selector names by @younata in https://github.com/Quick/Quick/pull/1211 * Bump cocoapods from 1.12.0 to 1.12.1 by @dependabot in https://github.com/Quick/Quick/pull/1210 * Bump danger from 9.2.0 to 9.3.0 by @dependabot in https://github.com/Quick/Quick/pull/1209 * Don't imply that we plan to remove the option to force encoded test selector names by @younata in https://github.com/Quick/Quick/pull/1212 * Merge branch quick_7 into main. by @younata in https://github.com/Quick/Quick/pull/1213 * [doc] Corrected to class method by @coffmark in https://github.com/Quick/Quick/pull/1214 * Update the english documentation for Quick 7 by @younata in https://github.com/Quick/Quick/pull/1215 * Provide a way to get the currently running spec, regardless of if we're executing an AsyncSpec or a QuickSpec by @younata in https://github.com/Quick/Quick/pull/1216 ## New Contributors * @tisohjung made their first contribution in https://github.com/Quick/Quick/pull/1204 * @coffmark made their first contribution in https://github.com/Quick/Quick/pull/1214 **Full Changelog**: https://github.com/Quick/Quick/compare/v6.1.0...v7.0.0
v7.0.0-beta.3
5 weeks ago
# Beta 3 Changes Quick 7 Beta 3 adds a flag to re-enable the encoded test selector names. This is useful for automated test analysis tools which track tests over time or are broken with the new human-readable test selectors. Set the `QUICK_USE_ENCODED_TEST_SELECTOR_NAMES` environment variable and Quick will generate the older-style encoded test selector names (all non alpha-numeric characters will be replaced with underscores). Thanks to @tikitu and @stonko1994 for their help prioritizing adding this flag. As with previous betas, we encourage you to check this out, and to share feedback by filing an issue or discussing this in [the discussion page](https://github.com/Quick/Quick/discussions/1205). # Beta 2 Changes Quick 7 Beta 2 changes how test selectors are generated for `QuickSpec`. Now, both `AsyncSpec` and `QuickSpec` will use the unencoded test names as the test selectors. Test selectors are now generated by joining the `describe`/`context` blocks leading up to the `it` block with ", ". This makes test names immensely easier to read. For example, with the following spec: ```swift class MySpec: QuickSpec { override class func spec() { describe("some feature") { context("in one case") { it("has a behavior") {} } context("in another case") { it("doesn't have the earlier behavior") {} } } } } ``` will generate the following test selectors: - `some feature, in one case, has a behavior` - `some feature, in another case, doesn't have the earlier behavior` # Beta 1 Changes Quick 7 changes how Async tests are run. Instead of forcing all tests to run in an async context, Quick 7 provides a separate Spec class for Async Tests. Create an `AsyncSpec` subclass, and all tests inside of that subclass will run in an async context. Tests inside of `QuickSpec` subclasses will have a similar behavior to what was in Quick 5. Additionally, Quick 7 changes how the DSL is defined slightly. In Quick 6 and before, the DSL was defined as a series of global functions, available to be called anywhere. In Quick 7, these functions were moved to be static methods on the new `SyncDSLUser` (which `QuickSpec`, `Behavior`, and `QuickConfiguration` conform to) and `AsyncDSLUser` (which `AsyncSpec` and `AsyncBehavior` conform to) protocols. This allows us to make sure that you are using the correct DSL for the context, and was necessary for this approach. For example: ```swift class SynchronousSpec: QuickSpec { override class func spec() { it("runs synchronously, as you'd expect") { var ocean: [String] = [] DispatchQueue.main.async { ocean.append("dolphins") ocean.append("whales") } expect(ocean).toEventually(contain("dolphins", "whales")) } } } class AsynchronousSpec: AsyncSpec { override class func spec() { it("runs the test in an async context") { var ocean: [String] = [] DispatchQueue.main.async { ocean.append("dolphins") ocean.append("whales") } await expect(ocean).toEventually(contain("dolphins", "whales")) } } } ``` Doing a Find & Replace of `override func spec` with `override class func spec` will take care of this. If you have any test helpers that exist on properties of your QuickSpec subclasses, the you will need to either move them inside of the `spec` function, or outside to another scope. For Objective-C users, this is, for the most part, a drop-in replacement. You will only need to do anything if you do not use the `QuickSpecBegin` and `QuickSpecEnd` macros (in which case: do a find & replace of the regex `-(\s*)\(void\)(\s*)spec` with `+$1(void)$2spec`). For migrating from Quick 6 to Quick 7, it would be easiest to also do a Find & Replace of `: QuickSpec` to `: AsyncSpec`, then migrate tests that do not need to run in async contexts to be `QuickSpec`s themselves. We encourage you to check this out, and to share feedback by filing an issue or discussing this in the discussions. # Auto-Generated Changelog ## Beta 3 Changes * Add mechanism to fallback to legacy test selector names by @younata in https://github.com/Quick/Quick/pull/1211 * Don't imply that we plan to remove the option to force encoded test selector names by @younata in https://github.com/Quick/Quick/pull/1212 ## Beta 2 Changes * Bump git from 1.12.0 to 1.13.0 by @dependabot in https://github.com/Quick/Quick/pull/1191 * Bump activesupport from 6.1.5 to 6.1.7.1 by @dependabot in https://github.com/Quick/Quick/pull/1196 * Bump danger from 9.1.0 to 9.2.0 by @dependabot in https://github.com/Quick/Quick/pull/1198 * Bump cocoapods from 1.11.3 to 1.12.0 by @dependabot in https://github.com/Quick/Quick/pull/1201 * Bump activesupport from 7.0.4.2 to 7.0.4.3 by @dependabot in https://github.com/Quick/Quick/pull/1203 * Bump fkirc/skip-duplicate-actions from 5.2.0 to 5.3.0 by @dependabot in https://github.com/Quick/Quick/pull/1188 * [Translation] AsyncAwait.md Korean translation by @tisohjung in https://github.com/Quick/Quick/pull/1204 * Update Nimble to v12 by @younata in https://github.com/Quick/Quick/pull/1206 * Demangle QuickSpec test names as much as possible by @younata in https://github.com/Quick/Quick/pull/1207 ## New Contributors * @tisohjung made their first contribution in https://github.com/Quick/Quick/pull/1204 **Full Changelog**: https://github.com/Quick/Quick/compare/v7.0.0-beta.2...v7.0.0-beta.3
v7.0.0 beta 2
6 weeks ago
Quick 7 Beta 2 changes how test selectors are generated for `QuickSpec`. Now, both `AsyncSpec` and `QuickSpec` will use the unencoded test names as the test selectors. Test selectors are now generated by joining the `describe`/`context` blocks leading up to the `it` block with ", ". This makes test names immensely easier to read. For example, with the following spec: ```swift class MySpec: QuickSpec { override class func spec() { describe("some feature") { context("in one case") { it("has a behavior") {} } context("in another case") { it("doesn't have the earlier behavior") {} } } } } ``` will generate the following test selectors: - `some feature, in one case, has a behavior` - `some feature, in another case, doesn't have the earlier behavior` As with Beta 1, we encourage you to check this out, and to share feedback by filing an issue or discussing this in [the discussion page](https://github.com/Quick/Quick/discussions/1205). # Beta 1 Changes Quick 7 changes how Async tests are run. Instead of forcing all tests to run in an async context, Quick 7 provides a separate Spec class for Async Tests. Create an `AsyncSpec` subclass, and all tests inside of that subclass will run in an async context. Tests inside of `QuickSpec` subclasses will have a similar behavior to what was in Quick 5. Additionally, Quick 7 changes how the DSL is defined slightly. In Quick 6 and before, the DSL was defined as a series of global functions, available to be called anywhere. In Quick 7, these functions were moved to be static methods on the new `SyncDSLUser` (which `QuickSpec`, `Behavior`, and `QuickConfiguration` conform to) and `AsyncDSLUser` (which `AsyncSpec` and `AsyncBehavior` conform to) protocols. This allows us to make sure that you are using the correct DSL for the context, and was necessary for this approach. For example: ```swift class SynchronousSpec: QuickSpec { override class func spec() { it("runs synchronously, as you'd expect") { var ocean: [String] = [] DispatchQueue.main.async { ocean.append("dolphins") ocean.append("whales") } expect(ocean).toEventually(contain("dolphins", "whales")) } } } class AsynchronousSpec: AsyncSpec { override class func spec() { it("runs the test in an async context") { var ocean: [String] = [] DispatchQueue.main.async { ocean.append("dolphins") ocean.append("whales") } await expect(ocean).toEventually(contain("dolphins", "whales")) } } } ``` We encourage you to check this out, and to share feedback by filing an issue or discussing this in the discussions. # Auto-Generated Changelog ## What's Changed * Bump git from 1.12.0 to 1.13.0 by @dependabot in https://github.com/Quick/Quick/pull/1191 * Bump activesupport from 6.1.5 to 6.1.7.1 by @dependabot in https://github.com/Quick/Quick/pull/1196 * Bump danger from 9.1.0 to 9.2.0 by @dependabot in https://github.com/Quick/Quick/pull/1198 * Bump cocoapods from 1.11.3 to 1.12.0 by @dependabot in https://github.com/Quick/Quick/pull/1201 * Bump activesupport from 7.0.4.2 to 7.0.4.3 by @dependabot in https://github.com/Quick/Quick/pull/1203 * Bump fkirc/skip-duplicate-actions from 5.2.0 to 5.3.0 by @dependabot in https://github.com/Quick/Quick/pull/1188 * [Translation] AsyncAwait.md Korean translation by @tisohjung in https://github.com/Quick/Quick/pull/1204 * Update Nimble to v12 by @younata in https://github.com/Quick/Quick/pull/1206 * Demangle QuickSpec test names as much as possible by @younata in https://github.com/Quick/Quick/pull/1207 ## New Contributors * @tisohjung made their first contribution in https://github.com/Quick/Quick/pull/1204 **Full Changelog**: https://github.com/Quick/Quick/compare/v7.0.0-beta.1...v7.0.0-beta.2
v7.0.0 Beta 1
7 weeks ago
Quick 7 changes how Async tests are run. Instead of forcing all tests to run in an async context, Quick 7 provides a separate Spec class for Async Tests. Create an `AsyncSpec` subclass, and all tests inside of that subclass will run in an async context. Tests inside of `QuickSpec` subclasses will have a similar behavior to what was in Quick 5. Additionally, Quick 7 changes how the DSL is defined slightly. In Quick 6 and before, the DSL was defined as a series of global functions, available to be called anywhere. In Quick 7, these functions were moved to be static methods on the new `SyncDSLUser` (which `QuickSpec`, `Behavior`, and `QuickConfiguration` conform to) and `AsyncDSLUser` (which `AsyncSpec` and `AsyncBehavior` conform to) protocols. This allows us to make sure that you are using the correct DSL for the context, and was necessary for this approach. For example: ```swift class SynchronousSpec: QuickSpec { override class func spec() { it("runs synchronously, as you'd expect") { var ocean: [String] = [] DispatchQueue.main.async { ocean.append("dolphins") ocean.append("whales") } expect(ocean).toEventually(contain("dolphins", "whales")) } } } class AsynchronousSpec: AsyncSpec { override class func spec() { it("runs the test in an async context") { var ocean: [String] = [] DispatchQueue.main.async { ocean.append("dolphins") ocean.append("whales") } await expect(ocean).toEventually(contain("dolphins", "whales")) } } } ``` We encourage you to check this out, and to share feedback by filing an issue or discussing this in the discussions. **Full Changelog**: https://github.com/Quick/Quick/compare/v6.1.0...v7.0.0-beta.1
v6.1.0
27 weeks ago
# Highlighted Changes - New `TestState` property wrapper (Thanks @CraigSiemens!). You can now wrap properties with `@TestState` to have them automatically set to nil. - Objective-C API is no longer available in Swift, this should reduce confusion whether a test is being executed in an async context or not. - This release drops support for Swift 5.6/Xcode 13.3.1. # Auto-generated Release Notes ## What's Changed * Bump danger from 9.0.0 to 9.1.0 by @dependabot in https://github.com/Quick/Quick/pull/1184 * Make Objective-C API unavailable in Swift. by @younata in https://github.com/Quick/Quick/pull/1185 * Update Nimble to 11.2.1, remove now-unnecessary usage of awaits in tests. Drop support for swift 5.6/Xcode 13.3.1 by @younata in https://github.com/Quick/Quick/pull/1187 * Added a `TestState` property wrapper. by @CraigSiemens in https://github.com/Quick/Quick/pull/1186 ## New Contributors * @CraigSiemens made their first contribution in https://github.com/Quick/Quick/pull/1186 **Full Changelog**: https://github.com/Quick/Quick/compare/v6.0.1...v6.1.0
v6.0.1
29 weeks ago
## What's Changed * Force async in `fit`, `xit`, `pending` and `justBeforeEach` by @younata in https://github.com/Quick/Quick/pull/1183 **Full Changelog**: https://github.com/Quick/Quick/compare/v6.0.0...v6.0.1
v6.0.0
31 weeks ago
This closes the [v6.0.0 milestone](https://github.com/Quick/Quick/milestone/8). # Highlights See additional details under the auto-generated release notes below. ## Fixed - No more sporadic crashes attempting to detect subclasses https://github.com/Quick/Quick/pull/1156 - Rerunning an individual test https://github.com/Quick/Quick/pull/1166 - Skipped tests are reported to Xcode https://github.com/Quick/Quick/pull/1098 ## New - Async/await support. All tests now run in an async context. https://github.com/Quick/Quick/pull/1160 - You can now throw a `StopTest` error to end a test prematurely without it being reported as an error. https://github.com/Quick/Quick/pull/1165 - Added the `justBeforeEach` operator, which takes a closure and runs it immediately prior to the relevant `it` tests. https://github.com/Quick/Quick/pull/1169 For example ```swift var ordering: [Int] = [] beforeEach { ordering.append(1) } justBeforeEach { ordering.append(3) } beforeEach { ordering.append(2) } it("runs justBeforeEach after the other beforeEach's") { expect(ordering).to(equal([1, 2, 3])) } ``` ## Breaking - This version raises minimum required version to Swift 5.6, and required OS to macOS 10.15, iOS 13, and tvOS 13. - `aroundEach` is removed from the Objective-C API https://github.com/Quick/Quick/pull/1160 - Again, with the async support, all tests now run in an async context. This will require you to make changes, especially if you use Nimble. # Auto-Generated Release Notes ## What's Changed * Create funding.yml by @jessesquires in https://github.com/Quick/Quick/pull/1147 * Report skipped tests to Xcode by @amomchilov in https://github.com/Quick/Quick/pull/1098 * Bump danger from 8.6.0 to 8.6.1 by @dependabot in https://github.com/Quick/Quick/pull/1148 * Renamed Configuration -> QCKConfiguration on documentation by @takehilo in https://github.com/Quick/Quick/pull/1152 * Fix sporadic crashes caused by finding classes that don't play well with isSubclass(of:) by @younata in https://github.com/Quick/Quick/pull/1156 * Raise minimum supported versions to macOS 10.15, iOS 13, tvOS 13 by @younata in https://github.com/Quick/Quick/pull/1146 * version up Nimble in Package.swift by @kimxwan0319 in https://github.com/Quick/Quick/pull/1153 * Update Nimble submodule checkout to refer to the Nimble v10.0.0 commit by @younata in https://github.com/Quick/Quick/pull/1157 * Fix tests broken by Nimble 10 update by @younata in https://github.com/Quick/Quick/pull/1158 * Add @younata to funding.yml by @younata in https://github.com/Quick/Quick/pull/1164 * Bump danger from 8.6.1 to 9.0.0 by @dependabot in https://github.com/Quick/Quick/pull/1168 * Allow throwing in a test without producing an unexpected error by @bnickel in https://github.com/Quick/Quick/pull/1165 * Allow rerunning individual examples in Xcode by @bnickel in https://github.com/Quick/Quick/pull/1166 * Bump fkirc/skip-duplicate-actions from 4.0.0 to 5.1.0 by @dependabot in https://github.com/Quick/Quick/pull/1171 * Introduce an `assignBefore` operator by @esilverberg in https://github.com/Quick/Quick/pull/1169 * Bump fkirc/skip-duplicate-actions from 5.1.0 to 5.2.0 by @dependabot in https://github.com/Quick/Quick/pull/1172 * Add support for xcode 14 and swift 5.7 by @younata in https://github.com/Quick/Quick/pull/1174 * Swift Async/Await Support by @younata in https://github.com/Quick/Quick/pull/1160 * Update Nimble to V11 by @younata in https://github.com/Quick/Quick/pull/1175 ## New Contributors * @amomchilov made their first contribution in https://github.com/Quick/Quick/pull/1098 * @takehilo made their first contribution in https://github.com/Quick/Quick/pull/1152 * @kimxwan0319 made their first contribution in https://github.com/Quick/Quick/pull/1153 * @bnickel made their first contribution in https://github.com/Quick/Quick/pull/1165 * @esilverberg made their first contribution in https://github.com/Quick/Quick/pull/1169 **Full Changelog**: https://github.com/Quick/Quick/compare/v5.0.1...v6.0.0
v5.0.1
1 year ago
This release closes the [v5.0.1 milestone](https://github.com/Quick/Quick/milestone/9?closed=1). ## What's Changed * Bump danger from 8.5.0 to 8.6.0 by @dependabot in https://github.com/Quick/Quick/pull/1141 * Bump fkirc/skip-duplicate-actions from 3.4.1 to 4.0.0 by @dependabot in https://github.com/Quick/Quick/pull/1140 * Fix running tests in parallel by @younata in https://github.com/Quick/Quick/pull/1143 * [5.0.1] version bump, gen docs by @jessesquires in https://github.com/Quick/Quick/pull/1144 **Full Changelog**: https://github.com/Quick/Quick/compare/v5.0.0...v5.0.1
v5.0.0
1 year ago
This release closes the [v5.0.0 milestone](https://github.com/Quick/Quick/milestone/7?closed=1). # Highlights See additional details under the auto-generated release notes below. ## Fixed - Tests not discoverable or cannot fail in Xcode 13.3 #1123, #1129 ## New - Add support for running a single test #1116 - Add aroundEach #1132 - New API docs via Jazzy available here: http://quick.github.io/Quick/ ## Breaking - Rename Configuration -> QCKConfiguration #1133 - Make FilterFlags implementation detail #1068 # Auto-generated release notes ## What's Changed * [BREAKING] Make FilterFlags implementation detail by @ikesyo in https://github.com/Quick/Quick/pull/1068 * [BREAKING] Bump Swift requirement to 5.3 (Xcode 12) by @ikesyo in https://github.com/Quick/Quick/pull/1069 * Re-add missing QUICK_EXPORT to Objective-C DSL by @ikesyo in https://github.com/Quick/Quick/pull/1070 * Added documentation for how to do data driven tests using Quick by @pobengtsson in https://github.com/Quick/Quick/pull/940 * Fix typos and code issues in the data driven examples documentation by @revolter in https://github.com/Quick/Quick/pull/1072 * [CI] Test Swift 5.5 Development by @ikesyo in https://github.com/Quick/Quick/pull/1081 * [README] Remove deprecated Accio references by @ikesyo in https://github.com/Quick/Quick/pull/1082 * [CI] macOS 11 and Xcode 12.5 by @ikesyo in https://github.com/Quick/Quick/pull/1083 * Bump danger from 8.2.3 to 8.3.1 by @dependabot in https://github.com/Quick/Quick/pull/1087 * Bump cocoapods from 1.10.1 to 1.10.2 by @dependabot in https://github.com/Quick/Quick/pull/1089 * Bump fkirc/skip-duplicate-actions from 3.4.0 to 3.4.1 by @dependabot in https://github.com/Quick/Quick/pull/1092 * Specify header_dir in the podspec by @tsapeta in https://github.com/Quick/Quick/pull/1091 * [CI] Test Xcode 13 by @ikesyo in https://github.com/Quick/Quick/pull/1095 * Less [String]() by @RomanPodymov in https://github.com/Quick/Quick/pull/1090 * Excluding Info.plist files from Swift Package by @heyzooi in https://github.com/Quick/Quick/pull/1088 * Bump cocoapods from 1.10.2 to 1.11.0 by @dependabot in https://github.com/Quick/Quick/pull/1099 * docs(DSL): fix typo by @bricker in https://github.com/Quick/Quick/pull/1100 * Bump cocoapods from 1.11.0 to 1.11.1 by @dependabot in https://github.com/Quick/Quick/pull/1101 * Fix individual tests run in Xcode 12.5 by @khramtsoff in https://github.com/Quick/Quick/pull/1097 * Use `#if canImport(Darwin)` for checking XCTIssue availability by @ikesyo in https://github.com/Quick/Quick/pull/1104 * Bump cocoapods from 1.11.1 to 1.11.2 by @dependabot in https://github.com/Quick/Quick/pull/1105 * Bump danger from 8.3.1 to 8.4.0 by @dependabot in https://github.com/Quick/Quick/pull/1107 * Bump danger from 8.4.0 to 8.4.1 by @dependabot in https://github.com/Quick/Quick/pull/1110 * Bump danger from 8.4.1 to 8.4.2 by @dependabot in https://github.com/Quick/Quick/pull/1112 * Bump danger from 8.4.2 to 8.4.3 by @dependabot in https://github.com/Quick/Quick/pull/1117 * Bump actions/checkout from 2 to 3 by @dependabot in https://github.com/Quick/Quick/pull/1120 * Bump danger from 8.4.3 to 8.4.5 by @dependabot in https://github.com/Quick/Quick/pull/1121 * Bump cocoapods from 1.11.2 to 1.11.3 by @dependabot in https://github.com/Quick/Quick/pull/1126 * Bump danger from 8.4.5 to 8.5.0 by @dependabot in https://github.com/Quick/Quick/pull/1125 * Critical! Fix test cases discoverage in Xcode 13.3 by @BobCatC in https://github.com/Quick/Quick/pull/1129 * Bump cocoapods-downloader from 1.5.1 to 1.6.3 by @dependabot in https://github.com/Quick/Quick/pull/1130 * Keep reference to AutoreleasingUnsafeMutablePointer by @ikesyo in https://github.com/Quick/Quick/pull/1103 * Use Objective-C runtime's `isSubclass(of:)` API for checking superclass by @ikesyo in https://github.com/Quick/Quick/pull/1096 * Fix Swift docs for non-named `configure` argument. by @alexhayes in https://github.com/Quick/Quick/pull/1113 * Fix `afterSuite` blocks not running when having excluded tests by @revolter in https://github.com/Quick/Quick/pull/1061 * [Breaking] Rename Configuration -> QCKConfiguration by @jessesquires in https://github.com/Quick/Quick/pull/1133 * Add aroundEach by @pcantrell in https://github.com/Quick/Quick/pull/1132 * Add support for running a single test by @younata in https://github.com/Quick/Quick/pull/1116 ## New Contributors * @tsapeta made their first contribution in https://github.com/Quick/Quick/pull/1091 * @RomanPodymov made their first contribution in https://github.com/Quick/Quick/pull/1090 * @heyzooi made their first contribution in https://github.com/Quick/Quick/pull/1088 * @bricker made their first contribution in https://github.com/Quick/Quick/pull/1100 * @khramtsoff made their first contribution in https://github.com/Quick/Quick/pull/1097 * @BobCatC made their first contribution in https://github.com/Quick/Quick/pull/1129 * @alexhayes made their first contribution in https://github.com/Quick/Quick/pull/1113 * @younata made their first contribution in https://github.com/Quick/Quick/pull/1116 **Full Changelog**: https://github.com/Quick/Quick/compare/v4.0.0...v5.0.0
iOS macOS tvOS
Quick/Nimble v12.0.1
A Matcher Framework for Swift and Objective-C
⭐️ 4,674
🕓 4 days ago
🔖 Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
v12.0.1
5 days ago
## What's Changed * Fix wasm build by @ikesyo in https://github.com/Quick/Nimble/pull/1053 * Bump cocoapods from 1.12.0 to 1.12.1 by @dependabot in https://github.com/Quick/Nimble/pull/1054 * Bump swiftwasm/swiftwasm-action from 5.7 to 5.8 by @dependabot in https://github.com/Quick/Nimble/pull/1057 * Make the async version of poll concurrency-safe by wrapping it in an actor by @younata in https://github.com/Quick/Nimble/pull/1059 * cast an empty array to avoid a warning during compile time by @younata in https://github.com/Quick/Nimble/pull/1060 **Full Changelog**: https://github.com/Quick/Nimble/compare/v12.0.0...v12.0.1
v12.0.0
7 weeks ago
Nimble 12 adds the ability to using polling expectations with async expressions. Additionally, Nimble 12 includes a number of quality-of-life improvements and bug fixes. ## What's Changed * Update the README to have an accurate usage of expect by @younata in https://github.com/Quick/Nimble/pull/1038 * Allow usage of toEventually with async expressions by @younata in https://github.com/Quick/Nimble/pull/1039 * Replace public usage of DispatchTimeInterval with a new NimbleTimeInterval by @younata in https://github.com/Quick/Nimble/pull/1042 * Make NimbleTimeInterval.dispatchTimeInterval public by @younata in https://github.com/Quick/Nimble/pull/1043 * Run SyncExpectation's expression in async contexts of toEventually on the main actor. by @younata in https://github.com/Quick/Nimble/pull/1044 * satisfyAllOf and satisfyAnyOf should only evaluate the expression once. by @younata in https://github.com/Quick/Nimble/pull/1045 * Rename AsyncDefaults to PollingDefaults by @younata in https://github.com/Quick/Nimble/pull/1023 * Fixed Swift.package: added macCatalyst to the condition for CwlPreconditionTesting dependency by @uebelack in https://github.com/Quick/Nimble/pull/1048 * Raise minimum watchos deployment target to 7.0 by @younata in https://github.com/Quick/Nimble/pull/1050 * Feature/handle multithreaded notifications by @johnmckerrell and @younata in https://github.com/Quick/Nimble/pull/1051 * Objective-C support in the Swift Package version by @younata in https://github.com/Quick/Nimble/pull/1005 * Update documentation in preparation for Nimble 12 by @younata in https://github.com/Quick/Nimble/pull/1052 ## New Contributors * @uebelack made their first contribution in https://github.com/Quick/Nimble/pull/1048 * @johnmckerrell made their first contribution in https://github.com/Quick/Nimble/pull/1051 **Full Changelog**: https://github.com/Quick/Nimble/compare/v11.2.2...v12.0.0
v11.2.2
9 weeks ago
# Highlights Nimble v11.2.2 is a minor bug fix release which fixes the build on Xcode 14.3 and Wasm. Thanks to @dymv for fixing the Xcode 14.3 build and to @ikesyo for fixing the wasm build! # Autogenerated Changelog ## What's Changed * Bump activesupport from 6.1.5 to 6.1.7.1 by @dependabot in https://github.com/Quick/Nimble/pull/1029 * Bump cocoapods from 1.11.3 to 1.12.0 by @dependabot in https://github.com/Quick/Nimble/pull/1032 * Fixes the build on Xcode 14.3b2 by @dymv in https://github.com/Quick/Nimble/pull/1033 * Bump activesupport from 7.0.4.2 to 7.0.4.3 by @dependabot in https://github.com/Quick/Nimble/pull/1034 * Fix wasm build by @ikesyo in https://github.com/Quick/Nimble/pull/1036 ## New Contributors * @dymv made their first contribution in https://github.com/Quick/Nimble/pull/1033 **Full Changelog**: https://github.com/Quick/Nimble/compare/v11.2.1...v11.2.2
v11.2.1
28 weeks ago
Fixed tripping the main thread checker in async `toEventually` checks. Your CI should no longer report that tests erroneously crashed because the expression's `debugDescription` dared to reference something that needed to run on the main thread. ## What's Changed * Add documentation on recommended ways to configure AsyncDefaults by @younata in https://github.com/Quick/Nimble/pull/1022 * Ensure that stringify'ing an expression as part of the async/await polling infrastructure always happens on the main thread by @younata in https://github.com/Quick/Nimble/pull/1024 **Full Changelog**: https://github.com/Quick/Nimble/compare/v11.2.0...v11.2.1
v11.2.0
29 weeks ago
Improved developer experience by allowing you to use the sync form of `expect` in a test that has other usage of async test. i.e. the following code compiles again: ```swift class MyTest: XCTestCase { func testExample() { await someAsyncFunction() expect(someValue).to(equal(expectedValue)) } } ``` ## What's Changed * Remove autoclosure tag with async expectations by @younata in https://github.com/Quick/Nimble/pull/1020 **Full Changelog**: https://github.com/Quick/Nimble/compare/v11.1.1...v11.2.0
v11.1.1
29 weeks ago
## What's Changed * Fix regression where named tuples could not be compared with unnamed tuples of the same types using the == operator by @younata in https://github.com/Quick/Nimble/pull/1017 * Use uncached expression in the async versions of toEventually by @younata in https://github.com/Quick/Nimble/pull/1018 **Full Changelog**: https://github.com/Quick/Nimble/compare/v11.1.0...v11.1.1
v11.1.0
30 weeks ago
11.1.0 **drops support** for Swift 5.6 (you must use Xcode 14 or later). https://github.com/Quick/Nimble/pull/1009 11.1.0 fixes a developer experience bug where you could unknowingly use the sync version of `toEventually` in an async context, which will cause test timeout failures. https://github.com/Quick/Nimble/pull/1010 That is, the following test method (XCTest-style) would compile with no errors or warnings emitted, but fail at test runtime due to timeout issues. In v11.1.0, this now emits a warning that you're using the wrong version of `toEventually` (and similar). ```swift @MainActor func testSomething() async { expect(1).toEventually(equal(1)) // (in v11.0.0, this would not emit any kind of warning or error, but would definitely fail with a timeout error) } ``` **Full Changelog**: https://github.com/Quick/Nimble/compare/v11.0.0...v11.1.0
v11.0.0
31 weeks ago
This closes the [v11.0.0 milestone](https://github.com/Quick/Nimble/milestone/12). # Highlights Primarily, this release now supports running tests in async contexts. ## Fixed - `toEventually` et. al. now works from background threads. https://github.com/Quick/Nimble/pull/1000 - `toEventually` et. al. now work in async tests. https://github.com/Quick/Nimble/issues/1007 ## New - Async/await support in expectation expressions (e.g. `await expect(await someAsyncFunction()).to(...)`). https://github.com/Quick/Nimble/pull/1004 - `append(details:)` now respects whitespace that is in the message. https://github.com/Quick/Nimble/pull/1001 - watchOS support. https://github.com/Quick/Nimble/pull/916 - You can now directly check if an expectation has passed or not. https://github.com/Quick/Nimble/pull/995 ## Breaking - Raised version requirements to Swift 5.6, iOS 13, macOS 10.15, tvOS 13, and watchOS 6. https://github.com/Quick/Nimble/issues/984 - The `Expectation` struct is now a protocol. There are 2 concrete implementations, `SyncExpectation` and `AsyncExpectation`. `AsyncExpectation` does not support `toEventually`, and is meant for awaiting on async functions. `SyncExpectation` is effectively the older `Expectation` implementation, and works as it used to. https://github.com/Quick/Nimble/pull/1004 # Auto-generated release notes ## What's Changed * Add support for watchOS by @JosephDuffy in https://github.com/Quick/Nimble/pull/916 * Add @younata to funding.yml by @younata in https://github.com/Quick/Nimble/pull/994 * Expose whether an expectation has passed and provide an option to throw by @bnickel in https://github.com/Quick/Nimble/pull/995 * Raise minimum required OS and Swift Versions to Async-Support versions. by @younata in https://github.com/Quick/Nimble/pull/999 * Don't strip whitespace from appended newlines by @younata in https://github.com/Quick/Nimble/pull/1001 * Allow toEventually to run on background threads by @younata in https://github.com/Quick/Nimble/pull/1000 * Allow using async/await in expect by @younata in https://github.com/Quick/Nimble/pull/1004 * Get toEventually et al working in async contexts. by @younata in https://github.com/Quick/Nimble/pull/1007 ## New Contributors * @JosephDuffy made their first contribution in https://github.com/Quick/Nimble/pull/916 * @bnickel made their first contribution in https://github.com/Quick/Nimble/pull/995 **Full Changelog**: https://github.com/Quick/Nimble/compare/v10.0.0...v11.0.0
v10.0.0
1 year ago
This closes the [v10.0.0 milestone](https://github.com/Quick/Nimble/milestone/11?closed=1). # Highlights See additional details under the auto-generated release notes below. ## Fixed - Various documentation improvements - Remove various deprecated APIs ## New - Add `toAlways`, the inverse of `toNever` #969 - Add `beWithin` matcher #886 - Support nested optionals in `beNil` matcher #894 - Support operator overloads for `beNil` matcher #893 - Support `throwAssertion` matcher on SwiftPM on Linux #891 - Add support for tuples of up to 6 elements to `equal` matcher, as with the standard library #880 - Add matchers for Swift 5 Result type #643 ## Breaking - Swift 5.4+ - Xcode 12.5+ - Remove old Matcher API #876 - Use FloatingPoint protocol in `beCloseTo` matcher #879 - `passFunc` of `allPass` matcher now takes `S.Element` over `S.Element?` #895 # Auto-generated release notes ## What's Changed * [BREAKING] Bump Swift requirement to 5.3 (Xcode 12) by @ikesyo in https://github.com/Quick/Nimble/pull/875 * [README] Use `expect` with trailing closure syntax for the `succeed` matcher by @ikesyo in https://github.com/Quick/Nimble/pull/877 * Suppress SwiftPM build warnings by @ikesyo in https://github.com/Quick/Nimble/pull/878 * [BREAKING] Remove old Matcher API by @ikesyo in https://github.com/Quick/Nimble/pull/876 * Add support for tuples of up to 6 elements to `equal` matcher, as with the standard library by @ikesyo in https://github.com/Quick/Nimble/pull/880 * [BREAKING] Use FloatingPoint protocol in `beCloseTo` matcher by @ikesyo in https://github.com/Quick/Nimble/pull/879 * Adding toNever expectation by @rkreutz in https://github.com/Quick/Nimble/pull/800 * [ObjC] Add `toNever` expectation by @ikesyo in https://github.com/Quick/Nimble/pull/885 * [BREAKING] Remove deprecated and unavailable APIs by @ikesyo in https://github.com/Quick/Nimble/pull/887 * Add `beWithin` matcher by @ikesyo in https://github.com/Quick/Nimble/pull/886 * Experimental SwiftWasm support by @ikesyo in https://github.com/Quick/Nimble/pull/889 * Removed invalid anchors in the README. by @daveverwer in https://github.com/Quick/Nimble/pull/890 * Support `throwAssertion` matcher on SwiftPM on Linux by @ikesyo in https://github.com/Quick/Nimble/pull/891 * Adds matchers for Swift 5 Result type by @xzeror in https://github.com/Quick/Nimble/pull/643 * Support operator overloads for `beNil` matcher by @ikesyo in https://github.com/Quick/Nimble/pull/893 * Support nested optionals in `beNil` matcher by @ikesyo in https://github.com/Quick/Nimble/pull/894 * [BREAKING] `passFunc` of `allPass` matcher now takes `S.Element` over `S.Element?` by @ikesyo in https://github.com/Quick/Nimble/pull/895 * Follow `master`-to-`main` branch renaming by @ikesyo in https://github.com/Quick/Nimble/pull/896 * Add more specific operator overloads for `equal` matcher by @ikesyo in https://github.com/Quick/Nimble/pull/897 * Simplify `equal` matcher implementation by @ikesyo in https://github.com/Quick/Nimble/pull/907 * [CI] Test Swift 5.5 Development by @ikesyo in https://github.com/Quick/Nimble/pull/908 * [README] Remove deprecated Accio references by @ikesyo in https://github.com/Quick/Nimble/pull/909 * [CI] macOS 11 and Xcode 12.5 by @ikesyo in https://github.com/Quick/Nimble/pull/912 * Work around Xcode 13 archiving issue by @ikesyo in https://github.com/Quick/Nimble/pull/915 * Bump addressable from 2.7.0 to 2.8.0 by @dependabot in https://github.com/Quick/Nimble/pull/918 * Bump cocoapods from 1.10.1 to 1.10.2 by @dependabot in https://github.com/Quick/Nimble/pull/920 * [CI] Test Xcode 13 by @ikesyo in https://github.com/Quick/Nimble/pull/926 * Update CwlPreconditionTesting to 2.0.1 by @ikesyo in https://github.com/Quick/Nimble/pull/927 * Reduce CI duration by removing tests on iPad simulator by @ikesyo in https://github.com/Quick/Nimble/pull/929 * Specify header_dir in the podspec by @tsapeta in https://github.com/Quick/Nimble/pull/921 * [CI] Disable swift:nightly tests temporarily by @ikesyo in https://github.com/Quick/Nimble/pull/930 * Bump cocoapods from 1.10.2 to 1.11.0 by @dependabot in https://github.com/Quick/Nimble/pull/933 * Bump swiftwasm/swiftwasm-action from 5.3 to 5.4 by @dependabot in https://github.com/Quick/Nimble/pull/932 * Bump cocoapods from 1.11.0 to 1.11.1 by @dependabot in https://github.com/Quick/Nimble/pull/934 * Bump cocoapods from 1.11.1 to 1.11.2 by @dependabot in https://github.com/Quick/Nimble/pull/935 * [CI] Test Swift 5.5 stable by @ikesyo in https://github.com/Quick/Nimble/pull/939 * Fix type inference problem for `equal` matchers on Xcode 12.5 or above by @ikesyo in https://github.com/Quick/Nimble/pull/938 * [BREAKING] Bump Swift requirement to 5.4 (Xcode 12.5) by @ikesyo in https://github.com/Quick/Nimble/pull/941 * Add support for precondition testing on Apple Silicon by @svenmuennich in https://github.com/Quick/Nimble/pull/948 * `beIdenticalTo` / `===`: disallow comparing non-objects by @NachoSoto in https://github.com/Quick/Nimble/pull/955 * Bump actions/checkout from 2 to 3 by @dependabot in https://github.com/Quick/Nimble/pull/970 * Fix `succeed` matcher type inference issue by @ikesyo in https://github.com/Quick/Nimble/pull/965 * Bump cocoapods from 1.11.2 to 1.11.3 by @dependabot in https://github.com/Quick/Nimble/pull/972 * Bump cocoapods-downloader from 1.5.1 to 1.6.3 by @dependabot in https://github.com/Quick/Nimble/pull/975 * Disable ThrowAssertion for watchOS to make Nimble compile for watchOS by @danielsaidi in https://github.com/Quick/Nimble/pull/953 * Add toAlways, the inverse of toNever. by @younata in https://github.com/Quick/Nimble/pull/969 * Simplify the implementations of beTruthy and beFalsy by @younata in https://github.com/Quick/Nimble/pull/978 * Fix equal compilation optionals by @younata in https://github.com/Quick/Nimble/pull/982 * Add document for running tests on linux using docker by @younata in https://github.com/Quick/Nimble/pull/980 * Update documentation for the beCloseTo and beWithin matchers by @younata in https://github.com/Quick/Nimble/pull/983 * [10.0.0] bump version, gen docs by @jessesquires in https://github.com/Quick/Nimble/pull/985 ## New Contributors * @rkreutz made their first contribution in https://github.com/Quick/Nimble/pull/800 * @daveverwer made their first contribution in https://github.com/Quick/Nimble/pull/890 * @xzeror made their first contribution in https://github.com/Quick/Nimble/pull/643 * @tsapeta made their first contribution in https://github.com/Quick/Nimble/pull/921 * @svenmuennich made their first contribution in https://github.com/Quick/Nimble/pull/948 * @NachoSoto made their first contribution in https://github.com/Quick/Nimble/pull/955 * @danielsaidi made their first contribution in https://github.com/Quick/Nimble/pull/953 * @jessesquires made their first contribution in https://github.com/Quick/Nimble/pull/985 **Full Changelog**: https://github.com/Quick/Nimble/compare/v9.2.0...v10.0.0
v9.2.1
1 year ago
## Bugfixes - Update CwlPreconditionTesting to 2.0.1 for Xcode 13 compatibility #927, #931
iOS macOS watchOS tvOS

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics