Visual Studio에서 테스트를 개별적으로 실행할 때 문제없이 모두 통과합니다. 그러나 한 번에 모든 것을 실행하면 일부 패스와 일부가 실패합니다. 각 테스트 방법 사이에 1 초 동안 일시 중지를 시도했지만 성공하지 못했습니다.
어떤 아이디어? 도움을 주셔서 감사합니다 ...
- 답변 # 1
- 답변 # 2
일부 수정/인스턴스 가능성이 매우 높습니다 한 테스트에서 수행 된 다른 테스트에 영향을줍니다. 테스트 디자인이 나쁘고 적절한 격리가 이루어지지 않았 음을 나타냅니다.
- 답변 # 3
모두가 옳을 것입니다. 테스트간에 일부 공유 날짜가 수정되고 있습니다. 그러나 MS Test 실행 순서에 유의하십시오. 단순히 테스트 사이에 일시 중지하는 것은 해결책이 아닙니다. 각 테스트는 별도의 스레드에서 테스트 클래스의 자체 인스턴스에서 실행됩니다.
- 답변 # 4
다른 응답에 따라. 상호 작용을 일으키는 단일 변수 또는 전역 변수가있는 것 같습니다.
- 답변 # 5
내가 사용한 다른 단위 테스트 프레임 워크는 테스트가 개별적으로 실행되는지 아니면 테스트가 동일한 결과를 생성하도록하기 위해 열심히 작동합니다. '모두 실행'대안의 일부로 실행됩니다. 목표는 한 테스트가 다른 테스트에서 기대하지 않는 구성에서 클래스의 정적 상태를 벗어나는 등의 부작용으로 인해 한 테스트가 다른 테스트에 영향을 미치지 않도록하는 것입니다. VS 단위 테스트 프레임 워크는 이러한 격리를 제공하지 않는 것 같습니다. 질문이 암시하는 문제의 종류를 최소화하기위한 두 가지 제안이 있습니다. 먼저, 클래스에 상태가있는 경우 (정적 메소드 이외의 것이있는 경우) 정적이 아닌 클래스를 정적 클래스보다 우선적으로 사용하십시오. 이 클래스의 단일 인스턴스를 작성하고 정적 클래스에 유지 된 상태 정보를 유지하십시오. 둘째, 정적 상태의 정적 클래스를 사용하기로 선택한 경우 정적 상태를 다시 '빈'으로 설정하는 정적 메소드 (예 : 모든 정적 속성을 null/zero/etc로 설정하는 메소드)를 사용하십시오. 테스트가 정적 상태에 미치는 영향을 취소하려면 각 단위 테스트가 끝날 때 이것을 호출하십시오. (이것은 우아하지는 않지만 적당히 수행하면 작동 할 수 있습니다). 또는 내가 계획 한 작업을 수행하십시오. 여러 테스트에서 격리를 제공하는 단위 테스트 프레임 워크를 찾으십시오.
관련 자료
- 명명 규칙을 사용하여 특정 파일을 삭제하기위한 Visual Studio 사전 빌드 이벤트
- Visual Studio 2017 및 C ++에서 주석을 자동으로 생성하는 방법은 무엇입니까?
- visual studio code - java 코드가 전혀 실행되지 않습니다
- resharper - 확장 및 설정이 다른 두 개의 Visual Studio 인스턴스를 나란히 실행할 수있는 방법이 있습니까?
- sql - Visual Studio에서 데이터베이스를 검색하는 방법? (씨#)
- tfs - 비주얼 스튜디오 - 팀 재단
- Visual Studio에서 모든 파일이 자동으로 C # 프로젝트의 일부인 이유는 무엇입니까?
- Visual Studio 2017에서 XamariniOS 프로젝트를 위해 MacBook Pro와 페어링 할 수 없습니다
- Visual Studio Code Java 프로그램에 "실행|디버그" 버튼이 나타나지 않음
- hhvm - Hack IDE 용 Visual Studio 코드?
- numpy - Python 37 + Visual Studio 2107 + 부스트 169
- c# - Visual Studio 솔루션을 Gitlab에 병합
- Visual Studio 2017 C #, 디버그 비동기 코드, 로컬 변수를 볼 수 없음
- Visual Studio code에서 파일 탭 아래의 파일 경로를 어떻게 숨길 수 있습니까?
- Visual Studio에서 단일 자식 분기를 복제 할 수 있습니까?
- c# - Visual Studio 2019, WPF 디버깅시 Xaml 파일 편집
- cmake - 해결 방법 - "nvcc 치명적 : vcvars64bat를 사용하여 microsoft visual studio 환경을 설정할 수 없습니다"
- .net - 이 컴퓨터에 설치되어 있지 않은 Visual Studio 2019"C # 프로젝트가"NETFramework, Version = v20"을 수정하는 방법
- LLVM을 사용하는 Visual Studio 프로젝트를 만드는 방법
- Visual Studio 2017/19 버전을 사용하여 C #으로 여러 파일을 얻는 방법은 무엇입니까
- c# 웹서비스에서 가져온 데이터를 데이터베이스에 저장
- c# : vs를 통해 게시할 때 azure 기능의 앱 이름 선택
- c# : storageAccount.CreateCloudFileClient VS Azure Storage 폴더에 저장하기 위한 URL
- c# : 토글 버튼 및 모든 버튼 템플릿
- c# : Visual Studio에서 "외부 명령 시작"이 누락된 새 SDK 프로젝트
- Visual Studio 2022에서 C# WinUI 프로젝트를 올바르게 만드는 방법은 무엇입니까?
- c# : Net Core: 명령줄을 사용하여 '패키지 관리자 콘솔' Nuget에서 '기본 프로젝트' 변경
- c# : VS-Dev 확장에서 비동기 작업을 어떻게 실행합니까?
- c# : 참조 'System.Void System.Security.Cryptography.DSACng를 확인할 수 없습니다.
- c# : IntelliSense는 빌드에 오류가 없음에도 불구하고 소스 생성기가 생성한 소스를 무시(보이지 않음)하기 때문에 오류가 발생합니다.
공유 된 데이터가있을 수 있습니다. 사용중인 클래스에서 정적 멤버 변수를 확인하십시오. 즉, 한 테스트에서 후속 테스트가 실패하도록하는 값을 설정합니다.
단위 테스트를 디버그 할 수도 있습니다. 사용중인 프레임 워크에 따라 프레임 워크 도구를 디버그 시작 애플리케이션으로 실행하여 컴파일 된 어셈블리의 경로를 매개 변수로 전달할 수 있어야합니다.