Support tests that use OHHTTPStubs in Swift Package Manager #530
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #494.
Looks like OHHTTPStubs don't have Linux support because OHHTTPStubs uses objc/runtime to swizzle URLSesson methods here.
OHHTTPStubs on macOS through SMP works fine, there is a minor problem with module names – when we import OHHTTPStubs through Carthage, the name of the module is
OHHTTPStubs
, and when through SMP, the name isOHHTTPStubsSwift
. Even though the content of the modules is the same. Currently, I'm solving this issue with a conditional compilation like this:In theory, we can create our own empty package that will use
@_exported
statements and then include this everywhere, but this API is private.Also, we need to replace every bundle creating with
Bundle.module
.If you have any suggestions on how to run these tests on Linux or how to simplify import statements, feel free to add a comment.