2009-09-10 5 views
1

NetBeans IDE와 함께 Symfony + Doctrine + PHPUnit을 사용하고 있습니다. 여기 '단위 테스트에 대한 나의 현재 접근 방식.symfony + doctrine + PHPUnit을 이용한 유닛 테스트

  • 설정() 함수는
  • 의 tearDown() 함수는 모델에서 모든 데이터를 삭제 .yml 파일에서 테스트 설비를로드합니다. 이것은 Doctrine_Query :: delete ($ modelName) -> execute()와 같은 것으로 모든 모델 이름의 배열을 반복하여 수행됩니다.

이것이 작동하는 것처럼 보이지만, 이것이 궁금한가요? 그것을하는 정확한 방법. 나는 본질적으로 모든 테스트 기능 후에 모든 테이블을 지우고 모델/테이블을 '모두 삭제'로 지정합니다.

Q1 : 이것이 올바른 방법인지 궁금합니다 ... Q2 : Netbeans IDE에서 제대로 작동하지만 "./symfony test : unit"을 통해 작동하지 않는 것 같습니다. 내가 누락 된 것이 있거나 CLI가 석회로만 작동합니까?

+0

더 많은 답변을 게시하려면 symfony 2에서 PHPUnit을 테스트 용으로 사용하십시오. 자세한 내용은 [매뉴얼 확인] (http://symfony.com/doc/current/book/testing.html)을 참조하십시오. – Potherca

답변

1

./symfony 테스트 : unit은 phpUnit이 아니라 테스트 프레임 워크로 라임을 사용하는 symfonys 자체 테스트 스위트를 실행합니다.

그리고 netbeans는 통합 테스트 지원을 위해 phpUnit을 사용합니다. netbeans가 netbeans에 포함 된 symfony suport의 symfony supert에 symfony 테스트 슈트를 추가 할 것입니다. 6.8

0

symfony에서 phpunit을 사용하고 싶다면 체크 아웃하십시오 : PHPUnit plugin 이것은 1.2.x에서만 작동합니다 .x는 현재 직장에서 체크 아웃하고 있습니다 : Another PHPUnit plugin이 마지막 베타 버전입니다.하지만 저자에 따르면 1.4.x에서 작동합니다. 곧 기억할 것입니다. 기억할 수 있다면, 나는 여기서 다시 와서 나의 발견을 던질 것이다. 솔직히 그것을 설치하고 싶지 않다면 철회하기가 어렵지 않으므로 쉽게 시도 할 수 있습니다.

당신이 그것을 시도하는 경우, 결과를 게시하시기 바랍니다, 정말 당신의 생각을 듣고 싶습니다. 나는 라임을 절름발이 (HAH!)라고 생각하고있다.

0

나는 외부에서 PHPUnit으로 플러그인을 사용하고있다. Doctrine을 사용하고 있습니다. 나는 꽤 문제가있다. 하나의 PHPUnit (나에 의해 작성된) 메소드를 실행하면 멋지 네요. 두 번째 것은 좋지 않습니다. Doctrine을 사용하는 방식 일 수 있습니다. 그것은 데이터베이스 (PHPUnit 메서드 호출 사이)에서 모든 것을 삭제하고 조명기 파일을 복원하더라도 setup()에서 DOCTRINE은 이전 값을 기억하고있는 것처럼 보입니다.

연결을 플러시할지, 잘못 기억하고있는 부모 개체를 설정 해제할지, refreshRelated() 등, 관계에 처음 할당 할 때 나는 여전히 이전 값을 얻습니다.

$ parent = new ParentType; // 부모 값을 설정합니다. $ child = new ChildType // 자식 값 설정 $ child [ 'Parent'] = $ parent; $ child-> save();

데이터베이스가 모든 것을 잘 반영하고 있습니다. PHPUnit의 Doctrine이 작동하지 않습니다. PHPUnit을 사용해 본 적이 없지만 사용하기 전에 테스트를 해본 적이 있습니까? 하지만 Doctrine 또는 PHPUnit인지 확인해야 할 수도 있습니다.