테스트 수업이 있고 아래에 테스트 수업에서 샘플 테스트를 게시했습니다.
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에서 레거시 러너 사용을 선택 취소했으며 이제 작동합니다.
답변
나는이 문제를 겪고 있었고 여기 의이 문제 와 같은 것으로 판명되었습니다 . 이 답변은 저에게 문제를 해결했습니다 .
- “실행시 시작 프로젝트 및 종속성 만 빌드”(옵션-> 프로젝트 및 솔루션-> 빌드 및 실행)를 선택 취소하십시오.
- 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 사용).
