2017-01-26 2 views
2

상태를 공유해야하는 xunit.net 테스트 집합이 있습니다. 바라건대, 나는이 테스트를 병렬로 실행하고 싶습니다. 그래서 주자가하고 싶은 것 :XUnit.net과 병렬로 실행되는 테스트 사이의 상태 공유

  • 는 xUnit의의 문서를 읽을 때 그 고정

를 사용하여 병렬 모든 테스트에서 공유 고정

  • 실행 만들기, 그것은 말한다에 그 테스트 클래스간에 상태를 공유하려면 '컬렉션 고정물'을 정의한 다음 모든 테스트 클래스를 새 컬렉션 (예 : [Collection("Database collection")])으로 정의해야합니다. 나는 같은 고정에 내 테스트 클래스를 넣을 때 목적 :(

    를 친다 그래서, 그들은 내가 xUnit의 원하는 것을 할 수있는 기본 방법이 있나요 더 이상 병렬로 실행되지 않습니다?

    내 공유 상태를 정적 클래스에 넣을 수 있습니다.

  • +0

    테스트 할 항목의 예를 들려줄 수 있습니까? –

    +0

    예를 들어 데이터베이스에 사용자를 생성해야하며 해당 사용자는 병렬로 실행될 테스트 집합에 의해 읽기 전용 모드로 공유됩니다. – mabead

    답변

    0

    테스트간에 상태를 공유하고 싶지는 않지만 테스트를 실행하는 데 필요한 설정을 공유하기를 원할뿐입니다. 여기서 xUnit을 사용하면됩니다 (예가 꽤 있습니다) : http://xunit.github.io/docs/shared-context.html

    Entity Framework를 사용하는 경우에도 여기에 대해 썼습니다. https://robertengdahl.blogspot.com/2017/01/testing-against-entityframework-using.html

    +0

    당신 말이 맞아요. 나는 잘못된 말을 사용했다. 나 * 상태 *가 아닌 * 설치 *를 공유하고 싶습니다. 즉, 첫 번째 링크를 살펴보면 내가하고 싶은 것은 CollectionFixture입니다. 여러 테스트 클래스에 대해 ** 동일한 ** 콜렉션 픽스처 (한 번만 인스턴스화)를 재사용하려면 모든 테스트 클래스를 동일한 [콜렉션]에 배치해야합니다. 그런 다음 동일한 [Collection]에 있으면 더 이상 병렬로 실행되지 않습니다. – mabead

    +0

    죄송 합니다만, 이것을 병렬로 실행하고 싶지 않습니다. 병렬 실행은 동일한 조명기 인스턴스를 필요로하지 않으므로 조명기 인스턴스를 테스트 클래스의 멤버 변수로 두 번째 링크에 표시하고 권장하는대로 사용할 수 있습니다. 병렬 테스트의 속도와 격리 된 테스트의 안전성을 얻을 수 있습니다. –

    관련 문제