내가 단위 테스트 내 WebAPI 컨트롤러가 올바른 기본 형식에서 파생 확인이 :webapi 컨트롤러 "<> C"
[TestMethod]
public void AllWebApiControllersShouldDeriveFromApiController()
{
var controllers = Assembly.GetAssembly(typeof(ApiControllerBase)).GetTypes()
.Where(t => t.Namespace == "Xxx.Web.Controllers")
.ToList();
controllers.Should().NotBeEmpty();
foreach (var controller in controllers)
{
if (controller == typeof(ApiControllerBase)) continue;
controller.Should().BeDerivedFrom<ApiControllerBase>();
}
}
은 최근까지 잘 작동했다
때 목록에 갑자기 관제사의 2 개의 "유령"관제사는 나타나는 것을 시작했다. 그들은 일종의 일반 (자동 생성?) 유형처럼 보이며 테스트에 실패합니다. 이들은 = "<> C"하면 FullName = 위의 "Xxx.Web.Controllers.ExistingControllerNameController + <> C"
그들은 실패하고 내 테스트
이름입니다. 그들은 무엇인가? 저들은 어디서 왔어요? 어떻게 그들을 제거 할 수 있습니까?
N.B. 테스트는 빌드 서버에서도 실패합니다. Clean & 재생성이 도움이되지 않았습니다.
컨트롤러 코드 전에 :
[HttpGet] [Route("api/things")] public IEnumerable<ThingDto> GetAll() { return service.GetAll(); }
& 후 :
[HttpGet] [Route("api/things")] public IEnumerable<ThingDto> GetAll() { return service.GetAll().OrderBy(x => x.Description); }
확인 : 내 테스트에서 다음을 제외 할
CompilerGeneratedAttribute
검사를 포함했다. 관련된 클래스가 무엇인지 모른 채 도움을받는 것은 불가능합니다. –여러 가지 이유로 생성되는 컴파일러 생성 클래스입니다. 그냥 [유형에 대한'CompilerGenerated' 속성에 대한 체크를 추가하십시오] (http://stackoverflow.com/questions/6418779). –
@DStanley 네 말이 맞아, 왜 갑자기 왜 나타나기 시작했는지 이해하고 싶니? – Tsar