2011-08-12 1 views
1

내가 꽤 큰 스펙 스위트 (watirspec)가, 나는 루비 보석 (safariwatir)에 대해 그것을 실행하고과 실패의 많은이 있습니다두 RSpec 제품군 실행 결과를 비교하는 방법은 무엇입니까?

1002 examples, 655 failures, 1 pending 

나는 보석의 변화를 확인하고 실행 (이 예에서는 52) 스위트 다시, 때로는 이전에 실패 사양이 많이 통과 : 이전에 통과 사양의 지금의 경우

1002 examples, 603 failures, 1 pending 

내가 이전에 실패 사양이 지금 통과되는 알고, 그리고 물론 것 실패. 내가 결과를 비교하기 위해 지금 --format documentation 옵션을 선택하고 텍스트 파일로 출력 결과에 테스트를 실행하는 것입니다, 다음 파일 DIFF :

rspec --format documentation --out output.txt 

더 좋은 방법이 있나요? 텍스트 파일을 비교하는 것이 바뀐 것을 보는 가장 쉬운 방법은 아닙니다.

답변

0

정확히 그 일을 할 수있는 것은 아무것도 없습니다. 그것이 그렇게 심하게 필요하다면 자신의 포맷터를 해킹하는 데 약간의 시간을 할애하지 말고 Spec::Runner::Formatter::BaseFormatter을 살펴보십시오. 꽤 잘 정리되어 있습니다.

1

지금 당장하고있는 것처럼 결과를 파일에 저장 한 다음 임의의 다른 diffing 도구로 그 결과를 비교하면됩니다.

+1

내가 지금하고있는 일이지만 파일이 너무 클 때 변경 사항을 보는 것은 쉽지 않습니다. –

0

@ Serabe의 솔루션을 구현했습니다. 요지보기 : https://gist.github.com/1142145.

파일 my_formatter.rb을 spec 폴더에 넣고 rspec --formatter MyFormatter을 실행하십시오. 포맷터는 현재 실행 결과를 이전 실행 결과와 비교하여 그 차이를 테이블로 출력합니다.

참고 : 포맷터는 현재 폴더에 result.txt 파일을 작성/덮어 씁니다.

사용 예제 :

D:\Projects\ZPersonal\equatable>rspec spec --format MyFormatter 
.......... 
No changes since last run 

Finished in 0.011 seconds 
10 examples, 0 failures 

No changes since last run 라인은 포맷터에 의해 추가되었다.

는 그리고 지금은 의도적으로 하나 다시 실행 RSpec에 깨진 :

D:\Projects\ZPersonal\equatable>rspec spec --format MyFormatter 
..F....... 
Affected tests (1). 
PS CS Description 
. F Equatable#== should be equal to the similar sock 
PS - Previous Status 
CS - Current Status 

Failures: 

    1) Equatable#== should be equal to the similar sock 
    Failure/Error: subject.should == Sock.new(10, :black, 0) 
     expected: #<Sock:0x2fbb930 @size=10, @color=:black, @price=0> 
      got: #<Sock:0x2fbbae0 @size=10, @color=:black, @price=20> (using ==) 
     Diff: 
     @@ -1,2 +1,2 @@ 
     -#<Sock:0x2fbb930 @color=:black, @price=0, @size=10> 
     +#<Sock:0x2fbbae0 @color=:black, @price=20, @size=10> 
    # ./spec/equatable_spec.rb:30:in `block (3 levels) in <top (required)>' 

Finished in 0.008 seconds 
10 examples, 1 failure 

Failed examples: 

rspec ./spec/equatable_spec.rb:29 # Equatable#== should be equal to the similar sock 

영향을받는 사양과 테이블은 포맷터에 의해 추가되었습니다

Affected tests (1). 
PS CS Description 
. F Equatable#== should be equal to the similar sock 
PS - Previous Status 
CS - Current Status 

일부 사양 상태가 현재와 이전 실행과 다른 경우 포맷터는 이전 상태, 현재 상태 및 스펙 설명을 출력합니다. '.' 통과 된 사양을 나타내며 'F'는 실패했고 'P'는 대기 중입니다.

코드가 완벽하지 않으므로 자유롭게 비판하고 변경하십시오.

희망이 도움이됩니다. 궁금한 점이 있으면 알려주세요.