関数


withKnownIssue(_:isIntermittent:isolation:
sourceLocation:_:when:matching:)


その実行中に発生することが予想される既知の問題を持つ関数を呼び出します。


iOS iPadOS Mac Catalyst macOS tvOS visionOS

watchOS Swift 6.0+ Xcode 16.0+

func withKnownIssue(
    _ comment: Commnent? = nil,
    isIntermittent: Bool = false,
    isolation: isolated (any Actor)? = #isolation,
    sourceLocation: SourceLocation = #_sourceLocation,
    _ body: () async throws -> Void,
    when precondition: () async -> Bool = { true },
    matching issueMatcher: @escaping KnownIssueMatcher = { _ in true }
) async rethrows




パラメータ


comment

既知の問題を説明するオプションのコメント。


isIntermittent

既知の問題が断続的に発生するかどうか。この引数が true で、既知の問題が発生しない場合は、二次的な問題は記録されません。


isolation

body が分離されているアクター(存在する場合)。


sourceLocation

記録された問題の原因となるソースの場所。


body

呼び出すべき関数。


precondition

body の実行中に発生する既知の問題を判定する関数です。この関数が true を返す場合、issueMatcher に一致する発生した問題は既知の問題とみなされます。この関数が false を返す場合、issueMatcher は呼び出されず、未知の問題として扱われます。


issueMatcher

問題が発生したときに呼び出される関数。この関数は、問題が発生することが既知であるかどうかを判断するために使用されます。デフォルトでは、すべての問題が一致します。



以下で言及


XCTest からのテストの移行



議論


Throws
issueMatcher と一致しない限り、body によって throw されるものすべて。


この関数は、テストが失敗しないはずの問題が 1 つ以上記録されることが分かっている場合に使用します。あるいは、前提条件が問題の発生可能性に影響を与える場合。例えば:


@Test func example() async throws {
  try await withKnownIssue {
    try await flakyCall()
  } when: {
    callsAreFlakyOnThisPlatform()
  } matching: { issue in
    issue.error is FileNotFoundError
  }
}

どちらか一方のみが関連する場合は、preconditionissueMatcher の両方を指定する必要はありません。すべてのエラーと問題を既知の問題と見なす必要がある場合は、代わりに withKnownIssue(_:isIntermittent:isolation:sourceLocation:_:when:matching:) を使用してください。


注意

同じ問題に対して issueMatcher は複数回呼び出される場合があります。





以下も見よ


関連する文書


既知の問題

テストを実行するときに、問題を既知としてマークします。



テストで既知の問題を記録する


func withKnownIssue(Comment?, isIntermittent: Bool, sourceLocation: SourceLocation, () throws -> Void)

その実行中に発生することが予想される既知の問題を持つ関数を呼び出します。


func withKnownIssue(Comment?, isIntermittent: Bool, isolation: isolated (any Actor)?, sourceLocation: SourceLocation, () async throws -> Void) async

その実行中に発生することが予想される既知の問題を持つ関数を呼び出します。


func withKnownIssue(Comment?, isIntermittent: Bool, sourceLocation: SourceLocation, () throws -> Void, when: () -> Bool, matching: KnownIssueMatcher) rethrows

その実行中に発生することが予想される既知の問題を持つ関数を呼び出します。


typealias KnownIssueMatcher

既知の問題と一致させるために使用される関数。














トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ