Xcode on macOS fails: cannot find 'fulfillment' in scope #61331
-
Select Topic AreaQuestion BodyWhen running a GitHub action to test a macOS app, I get the following error: error: cannot find 'fulfillment' in scope As a matter of fact, I am using XCTest's @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *) So I am not sure why I get the error given that:
Any help to figure out how to fix this issue is welcome 🙏 |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments
-
🕒 Discussion Activity Reminder 🕒 This Discussion has been labeled as dormant by an automated system for having no activity in the last 60 days. Please consider one the following actions: 1️⃣ Close as Out of Date: If the topic is no longer relevant, close the Discussion as 2️⃣ Provide More Information: Share additional details or context — or let the community know if you've found a solution on your own. 3️⃣ Mark a Reply as Answer: If your question has been answered by a reply, mark the most helpful reply as the solution. Note: This dormant notification will only apply to Discussions with the Thank you for helping bring this Discussion to a resolution! 💬 |
Beta Was this translation helpful? Give feedback.
-
A workaround that I set up on swift-blocks: #if os(Linux)
import XCTest
extension XCTestCase {
/// Wait on an array of expectations for up to the specified timeout, and optionally specify whether they
/// must be fulfilled in the given order. May return early based on fulfillment of the waited on expectations.
///
/// - Parameter expectations: The expectations to wait on.
/// - Parameter timeout: The maximum total time duration to wait on all expectations.
/// - Parameter enforceOrder: Specifies whether the expectations must be fulfilled in the order
/// they are specified in the `expectations` Array. Default is false.
/// - Parameter file: The file name to use in the error message if
/// expectations are not fulfilled before the given timeout. Default is the file
/// containing the call to this method. It is rare to provide this
/// parameter when calling this method.
/// - Parameter line: The line number to use in the error message if the
/// expectations are not fulfilled before the given timeout. Default is the line
/// number of the call to this method in the calling file. It is rare to
/// provide this parameter when calling this method.
///
/// - SeeAlso: XCTWaiter
func fulfillment(of expectations: [XCTestExpectation], timeout: TimeInterval, enforceOrder: Bool = false) async {
await withCheckedContinuation { continuation in
// This function operates by blocking a background thread instead of one owned by libdispatch or by the
// Swift runtime (as used by Swift concurrency.) To ensure we use a thread owned by neither subsystem, use
// Foundation's Thread.detachNewThread(_:).
Thread.detachNewThread { [self] in
wait(for: expectations, timeout: timeout, enforceOrder: enforceOrder)
continuation.resume()
}
}
}
}
#endif |
Beta Was this translation helpful? Give feedback.
A workaround that I set up on swift-blocks: