Support tests that use OHHTTPStubs in Swift Package Manager#530
Merged
azarovalex merged 2 commits intomainfrom Mar 26, 2021
Merged
Support tests that use OHHTTPStubs in Swift Package Manager#530azarovalex merged 2 commits intomainfrom
azarovalex merged 2 commits intomainfrom
Conversation
1ec5
approved these changes
Mar 25, 2021
Contributor
1ec5
left a comment
There was a problem hiding this comment.
The changes look pretty reasonable to me, including the conditional compilation. The Bundle.module changes are fine because, elsewhere in the test target, we declare that constant conditionally for Carthage. I just have one comment about a more straightforward way to declare the conditional OHHTTPStubs dependency, but it isn’t critical.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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
@_exportedstatements 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.