[C#] 테스트 방법이 결정적이지 않습니다 : 테스트가 실행되지 않았습니다. 오류?

테스트 수업이 있고 아래에 테스트 수업에서 샘플 테스트를 게시했습니다.

namespace AdminPortal.Tests.Controller_Test.Customer
{
    [TestClass]
    public class BusinessUnitControllerTests
    {
        private IBusinessUnitRepository _mockBusinessUnitRepository;
        private BusinessUnitController _controller;

        [TestInitialize]
        public void TestInitialize()
        {
            _mockBusinessUnitRepository = MockRepository.GenerateMock<IBusinessUnitRepository>();
            _controller = new BusinessUnitController(_mockBusinessUnitRepository);
        }

        [TestCleanup]
        public void TestCleanup()
        {
            _mockBusinessUnitRepository = null;

            _controller.Dispose();
            _controller = null;

        }

        #region Index Action Tests
        [TestMethod]
        public void Index_Action_Calls_GetAllBusinessUnit()
        {
            _mockBusinessUnitRepository.Stub(x => x.GetAllBusinessUnit());

            _controller.Index();

            _mockBusinessUnitRepository.AssertWasCalled(x=>x.GetAllBusinessUnit());
        }
    }
}

프로젝트를 실행하면 다음 화면이 나타납니다.
여기에 이미지 설명을 입력하십시오

참조를 확인했으며 테스트 프로젝트에는 기본 프로젝트에 대한 참조가 있습니다. 왜 테스트가 실행되지 않거나 결정적이지 않았다고 생각하십니까?

편집 1 :

여기 에서 게시물을보고 테스트 설정의 기본 프로세서 아키텍처를 X64로 변경했지만 여전히 작동하지 않습니다.



답변

위의 옵션 중 어느 것도 누군가에게 효과가없는 경우 테스트 프로젝트에서 누락 된 nuget 패키지로 인해 App.Config의 손상된 항목을 확인 하여이 오류의 인스턴스를 수정했습니다.


답변

나에게는 다소 실망 스럽지만 적어도 내 경우에 대한 해결책을 찾았습니다.

TestMethod가 비동기 인 경우 무효가 될 수 없습니다. 반드시 Task를 반환해야합니다.

그것이 누군가를 돕기를 바랍니다 🙂


답변

나는 resharper와 같은 문제가 있었고 옵션을 변경 하여이 오류를 수정했습니다.

Resharper => 옵션 => 도구 => 단위 테스트

방금 “테스트중인 그림자 복사 어셈블리”옵션을 선택 해제해야했습니다.


답변

Resharper 문제였습니다. Resharper 옵션-> 도구-> MSTEST에서 레거시 러너 사용을 선택 취소했으며 이제 작동합니다.


답변

나는이 문제를 겪고 있었고 여기 의이 문제 와 같은 것으로 판명되었습니다 . 이 답변은 저에게 문제를 해결했습니다 .

  1. “실행시 시작 프로젝트 및 종속성 만 빌드”(옵션-> 프로젝트 및 솔루션-> 빌드 및 실행)를 선택 취소하십시오.
  2. Configuration Manager에서 시작 프로젝트와 테스트 프로젝트 모두 “빌드”를 확인했는지 확인하십시오.

두 번째 로이 문제를 겪었을 때 테스트가있는 프로젝트의 파일 경로에 앰퍼샌드가 있었기 때문입니다. ReSharper의 테스트 러너에서는 잘 작동하지만 dotCover에서는 작동하지 않습니다. 파일 경로에서 앰퍼샌드를 제거하십시오.

이것은 dotCover 의 확인 된 버그 입니다.


답변

나를 위해 단순히 솔루션을 청소하고 다시 작성하면 해결되었습니다.


답변

나에게 문제는 예기치 않은 전원 부족으로 인해 손상된 NUnit / ReSharper 설정 XML 파일 이었습니다.

오류를 식별하기 위해이 명령으로 Visual Studio를 시작했습니다 .

devenv.exe /ReSharper.LogFile C:\temp\resharper.log /ReSharper.LogLevel Verbose

파일을 조사한 결과 다음 예외가 드러났습니다.

09:45:31.894 |W| UnitTestLaunch                | System.ApplicationException: Error loading settings file
System.ApplicationException: Error loading settings file ---> System.Xml.XmlException: Root element is missing.
   at System.Xml.XmlTextReaderImpl.Throw(Exception e)
   at System.Xml.XmlTextReaderImpl.ParseDocumentContent()
   at System.Xml.XmlLoader.Load(XmlDocument doc, XmlReader reader, Boolean preserveWhitespace)
   at System.Xml.XmlDocument.Load(XmlReader reader)
   at System.Xml.XmlDocument.Load(String filename)
   at NUnit.Engine.Internal.SettingsStore.LoadSettings()
   --- End of inner exception stack trace ---
   at NUnit.Engine.Internal.SettingsStore.LoadSettings()
   at NUnit.Engine.Services.SettingsService.StartService()
   at NUnit.Engine.Services.ServiceManager.StartServices()
   at NUnit.Engine.TestEngine.Initialize()
   at NUnit.Engine.TestEngine.GetRunner(TestPackage package)
   at JetBrains.ReSharper.UnitTestRunner.nUnit30.BuiltInNUnitRunner.<>c__DisplayClass1.<RunTests>b__0()
   at JetBrains.ReSharper.UnitTestRunner.nUnit30.BuiltInNUnitRunner.WithExtensiveErrorHandling(IRemoteTaskServer server, Action action)

이것은 아닙니다 테스트 프로젝트의 app.config !

빠른 인터넷 검색 주위의 원인으로 다음과 같은 파일을 확인했다 :

%LOCALAPPDATA%\NUnit\Nunit30Settings.xml

존재했지만 비어있었습니다. 삭제하고 Visual Studio를 다시 시작하면 문제가 해결되었습니다.

(Visual Studio Professional 2017 v15.3.5 및 ReSharper 2017.2.1 사용).