필자의 기능 테스트에서별로 논리적이지 않은 문제가 있습니다.Symfony 2 기능 테스트
테스트는 간단합니다. 단지 홈페이지를 요청하고 그 안에 특정 클래스가있는 요소를 검색합니다.
홈페이지는 기사 목록을 표시하는 블로그 용입니다. 그리고 각 기사는 여러 개의 페이지 (일대 다)를 가질 수 있으며 각 페이지는 자신의 추천 이미지입니다.
홈페이지에서 (twig) $ article-> getPages() -> first() -> getImageUrl()을 수행합니다.
동일한 조명기를 사용하고 브라우저에서 페이지에 액세스하면 모든 것이 표시되지만 테스트를 실행할 때 "알 수없는 객체에 getImageUrl에 액세스 할 수 없습니다"라는 예외가 발생합니다. DB에서 기사 페이지를 가져 오지 않습니다.
테스트에서 직접 기사에 대한 db 쿼리를 수행하고 모든 기사 ($ article-> getPages() -> first() -> getImageUrl())를 반복 할 때이 문제는 낯선 것입니다. . self :: $ client-> request() 호출을 사용할 때만 작동하지 않습니다.
필자는 조명기를 들여다 보았고 심지어 쿼리 작성기에 명시 적 innerJoin()을 추가하고 데이터베이스에 올바른 데이터가 있는지 수동으로 확인했습니다.
또한, 다른 기능 테스트를 통해 자신의 조명기를로드하고이 조명기를 제외하고는 모두 작동합니다.
이것은 아래 테스트 코드입니다. 전적으로 실행될 때와 전체 테스트 세트로 실행될 때 모두 실패합니다. 내가 엔티티 관리자를 삭제하면이 작업 내 테스트를 만드는 것을 발견
엔티티 관리자를 삭제하면 테스트가 작동하는 것으로 나타났습니다 ... 그래서 self :: $ client-> getContainer() -> get ('doctrine') -> getManager() -> clear); – Stev
솔루션과 함께 답변을 추가하고 동의 할 수 있습니다. 이 문제는 해결 된 것으로 표시됩니다. –