단위 테스트에서 잠금이 작동하지 않음

왕실

수업에 대한 일부 단위 테스트를 진행 중입니다. 이 클래스는 파일로 작업하고 있습니다. 여러 단위 테스트를 구현하고 자체적으로 실행했지만 모두 동시에 실행되도록했을 때 테스트가 실패하는 것을 발견했습니다. 그래서 VisualStudio가 단위 테스트를 병렬로 실행한다는 것을 알아 냈습니다.

각 테스트에 대한 파일을 준비하는 동안 문제가 발생하지 않도록 스레드 잠금을 구현하려고했습니다. 그러나 지금까지 이것은 작동하지 않습니다.

다음으로 내 문제를 설명하는 간단한 예를 제공했습니다.

[TestClass]
public class UnitTest1
{
    private static object lockObject = new object();

    private void DoSomething()
    {
        File.Create(@"D:\test.txt");
        for (int i = 0; i < 100000; i++)
        {
        }
        File.Delete(@"D:\test.txt");
    }

    [TestMethod]
    public void TestMethod1()
    {
        lock (lockObject)
        {
            DoSomething();
        }
    }

    [TestMethod]
    public void TestMethod2()
    {
        lock (lockObject)
        {
            DoSomething();
        }
    }
}

다른 프로세스에서 이미 사용 중이기 때문에 각 프로세스가 파일에 액세스 할 수 없기 때문에 테스트가 실패합니다.

내가 뭘 잘못했는지 아는 사람이 있습니까?

Stewart_R

에서 FileStream반환 된 개체를 처리하지 않기 때문에 파일 자체가 잠겨 있습니다. 이는 File.Create호출을 시도 할 때 파일이 여전히 열려 있음을 의미합니다 File.Delete.

가능한 IDisposableusing {}블록에 일회용 개체 (를 구현하는 모든 것 ) 를 포장 하여 리소스가 적절하게 처리되도록하는 것이 가장 좋습니다 . 귀하의 경우 파일을 닫으면 문제가 해결됩니다.

따라서 코드를 다음과 같이 변경하면 즉각적인 문제가 해결됩니다.

private void DoSomething()
{
    using (var file = File.Create(@"D:\test.txt"))
    {
        for (int i = 0; i < 100000; i++)
        {
        }
    }

    File.Delete(@"D:\test.txt");
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

새 단위 테스트 프로젝트에서 DeploymentItem (Path, outputDirectory)이 작동하지 않음

분류에서Dev

각도 단위 테스트 : 테스트 명령이 작동하지 않음

분류에서Dev

오늘 위젯-openURL 잠금 해제 iPhone 실행이 작동하지 않음

분류에서Dev

"실행기에서 잠금 해제"옵션이 작동하지 않음

분류에서Dev

Ubuntu 12.04에서 화면 잠금 기능이 작동하지 않음

분류에서Dev

OSX : NFS를 사용하는 Ubuntu 게스트에서 방랑자 잠금이 작동하지 않음

분류에서Dev

이온 서비스에 대한 단위 테스트 정의되지 않음

분류에서Dev

데이터베이스 함수 Mock이 C # 웹 API 단위 테스트에서 작동하지 않습니다.

분류에서Dev

단위 테스트 케이스 MockRestServiceServer 예상 URL이 RestTemplate에서 작동하지 않습니다.

분류에서Dev

Tensorflow fully_connected가 단위 테스트 케이스에서 작동하지 않습니까?

분류에서Dev

원자 적 액세스를위한 파일 잠금이 작동하지 않습니다.

분류에서Dev

log4net XmlConfigurator 속성이 단위 테스트에서 작동하지 않는 이유

분류에서Dev

Ubuntu 20.04에서 잠금 화면이 잠금 해제되지 않음

분류에서Dev

django-localeurl 패치 된 역방향이 단위 테스트에서 작동하지 않습니다.

분류에서Dev

스레드가 단일 잠금과 동기화되지 않음

분류에서Dev

위치 : 절대 하단 : 0 텍스트를 이미지 중앙에 배치 할 때 작동하지 않음

분류에서Dev

MarkLogic 단위 테스트에서 테스트를 실행하지 않음

분류에서Dev

Jackson이 dropwizard로 빈 XML을 생성하지만 단위 테스트에서는 생성하지 않음

분류에서Dev

테스트를위한 인 메모리 데이터베이스를 사용하여 엔티티 관리자가 잠금을 해제하지 않음 '잠금을 얻을 수 없음'

분류에서Dev

음수 여백 상단이 Chrome에서 작동하지 않음

분류에서Dev

Docker 제거 Dangling 이미지 명령이 CoreOS 시스템 단위 파일에서 작동하지 않음

분류에서Dev

Django 단위 테스트 client.login이 작동하지 않습니다.

분류에서Dev

잠금 화면에서 한 번 클릭 / 탭할 때 Android 알림이 작동하지 않음

분류에서Dev

새로운 Ubuntu 20.04 설치에서 드래그 잠금이 작동하지 않음

분류에서Dev

자동 화면 잠금이 작동하지 않음 Ubuntu 20.04

분류에서Dev

자동 화면 잠금이 작동하지 않음 Ubuntu 20.04

분류에서Dev

하단 시트의 범위 슬라이더가 Flutter에서 작동하지 않음

분류에서Dev

Python의 스레딩 및 다중 프로세스 잠금이 작동하지 않음

분류에서Dev

Spring 단위 테스트에서 Vanilla JDBC 업데이트가 롤백되지 않음

Related 관련 기사

  1. 1

    새 단위 테스트 프로젝트에서 DeploymentItem (Path, outputDirectory)이 작동하지 않음

  2. 2

    각도 단위 테스트 : 테스트 명령이 작동하지 않음

  3. 3

    오늘 위젯-openURL 잠금 해제 iPhone 실행이 작동하지 않음

  4. 4

    "실행기에서 잠금 해제"옵션이 작동하지 않음

  5. 5

    Ubuntu 12.04에서 화면 잠금 기능이 작동하지 않음

  6. 6

    OSX : NFS를 사용하는 Ubuntu 게스트에서 방랑자 잠금이 작동하지 않음

  7. 7

    이온 서비스에 대한 단위 테스트 정의되지 않음

  8. 8

    데이터베이스 함수 Mock이 C # 웹 API 단위 테스트에서 작동하지 않습니다.

  9. 9

    단위 테스트 케이스 MockRestServiceServer 예상 URL이 RestTemplate에서 작동하지 않습니다.

  10. 10

    Tensorflow fully_connected가 단위 테스트 케이스에서 작동하지 않습니까?

  11. 11

    원자 적 액세스를위한 파일 잠금이 작동하지 않습니다.

  12. 12

    log4net XmlConfigurator 속성이 단위 테스트에서 작동하지 않는 이유

  13. 13

    Ubuntu 20.04에서 잠금 화면이 잠금 해제되지 않음

  14. 14

    django-localeurl 패치 된 역방향이 단위 테스트에서 작동하지 않습니다.

  15. 15

    스레드가 단일 잠금과 동기화되지 않음

  16. 16

    위치 : 절대 하단 : 0 텍스트를 이미지 중앙에 배치 할 때 작동하지 않음

  17. 17

    MarkLogic 단위 테스트에서 테스트를 실행하지 않음

  18. 18

    Jackson이 dropwizard로 빈 XML을 생성하지만 단위 테스트에서는 생성하지 않음

  19. 19

    테스트를위한 인 메모리 데이터베이스를 사용하여 엔티티 관리자가 잠금을 해제하지 않음 '잠금을 얻을 수 없음'

  20. 20

    음수 여백 상단이 Chrome에서 작동하지 않음

  21. 21

    Docker 제거 Dangling 이미지 명령이 CoreOS 시스템 단위 파일에서 작동하지 않음

  22. 22

    Django 단위 테스트 client.login이 작동하지 않습니다.

  23. 23

    잠금 화면에서 한 번 클릭 / 탭할 때 Android 알림이 작동하지 않음

  24. 24

    새로운 Ubuntu 20.04 설치에서 드래그 잠금이 작동하지 않음

  25. 25

    자동 화면 잠금이 작동하지 않음 Ubuntu 20.04

  26. 26

    자동 화면 잠금이 작동하지 않음 Ubuntu 20.04

  27. 27

    하단 시트의 범위 슬라이더가 Flutter에서 작동하지 않음

  28. 28

    Python의 스레딩 및 다중 프로세스 잠금이 작동하지 않음

  29. 29

    Spring 단위 테스트에서 Vanilla JDBC 업데이트가 롤백되지 않음

뜨겁다태그

보관