2011-10-31 3 views
5

Sinatra 앱 (웹 사이트)을 작성했으며 사이트 코드에 대한 코드 커버리지 정보를 수집하고 싶습니다. 나는 Ruby를 처음 사용하지만 Google은 rcov가 훌륭한 코드 커버리지 도구라고 알려줍니다. 불행히도 온라인에서 찾을 수있는 모든 정보는 테스트 사례에 대한 코드 커버리지 정보를 얻는 방법 만 보여줍니다. 저는 사이트 자체에 대한 코드 커버리지 정보를 원합니다. 내가 프로파일 할Sinatra 앱의 코드 커버리지 통계는 어떻게 받습니까?

특정 사이트의 파일은 "SDK"와 "SDK/공급 업체"디렉토리에, 그래서 일반적으로 "루비 site.rb"내 사이트를 실행하는 것입니다 어디 대신 다음과 같은 시도 :

rcov -Isdk -Isdk/vendor site.rb 

Sinatra 시작 텍스트가 표시되었지만 Sinatra 앱처럼 웹 요청을 기다리지 않고 즉시 종료되었습니다.

코드 범위가 활성화 된 상태에서 내 사이트를 실행하는 속임수를 누군가에게 알려주시겠습니까? 사이트를 실행하고 일련의 요청으로 공격 한 다음 사이트를 중단하고 싶습니다. 그 후에 나는 전체 일련의 요청들로부터 축적 된 코드 커버리지 통계를보고 싶다.

현재 Ruby 1.8.7을 사용하고 있습니다.

+0

당신이 '응용 프로그램에 대한 코드 커버리지'로 이해하는 것과 같이 좀 더 자세히 설명해 수 index.html을/보도에서 정말 좋은 커버리지 보고서를 생성? 전통적으로 테스트 케이스의 적용 범위를 의미하기 때문에 – robustus

+0

Sinatra를 사용하여 웹 사이트를 구현했습니다. 사이트를 실행하고 해당 운동 중에 사이트 코드가 얼마나 실행되는지 측정하고 싶습니다. 나는 사이트의 운동을 자동화하기 위해 어떤 테스트 프레임 워크도 사용하지 않고있다. – Bruce

+0

이것은 간단해야하지만, 몇 가지 중요한 통찰력을 놓치고있는 것처럼 보입니다. – Bruce

답변

1

어쩌면 SimpleCov을 살펴볼 수 있습니다. 어떤 종류의 범위 분석에 대해서도 간단한 사용법을 알리고 있습니다.

+0

보기 좋지만 현재 Ruby 1.8.7을 사용하고 있으며 SimpleCov는 1.9+ 만 지원합니다. 위의 내 문제 설명을이 정보로 업데이트하겠습니다. – Bruce

4

SimpleCov가 이상적입니다. 당신이 RSpec에와 Bundler를 설치 사용하는 경우는

gem 'simplecov'

다음

사양/spec_helper.rb에서

$ bundle install

(아무것도하기 전에 보석 파일에

매우 간단합니다)

require 'simplecov' 
SimpleCov.start 
다음

: $ rspec spec

Simplecov는

+0

저는 rspec을 사용하지 않습니다. 제 질문에서 지적했듯이 테스트가 아닌 내 사이트 파일에 코드 커버리지를 원합니다. – Bruce

+0

충분히 좋습니다. 나는 그 질문을 오해 한 것 같아. 특정 요청이나 요청이있을 때 어떤 코드 행이 실행되고 있는지 테스트하고 싶습니까? 간단히 단위 테스트 나 통합 테스트를 작성하는 것이 좋습니다. 어떤 상황에서 테스트 스위트가 아닌 다른 커버리지 리포트를 갖는 것이 유용할까요? – jacobsimeon

+0

맞습니다. 브라우저, Sinatra 서버 및 기타 원격 웹 서비스 간의 상호 작용을 통해 상당히 복잡한 환경에서 실행되는 일부 서버 측 코드를 테스트하고 있습니다.Ruby 테스트 도구 중 하나를 사용하고 직접 테스트하지 않는 구성의 모든 부분을 조롱했을 가능성이 있지만 Ruby를 처음 사용하기 때문에 복잡한 시스템을 간단하게 구현하는 것이 더 간단하고 안전하다는 것을 알았습니다. 그런 다음 브라우저에서 운동하십시오. 그런데 이제는 내가 테스트중인 루비 코드가 실제로 내 테스트에 얼마나 부딪히는 지 궁금하다. – Bruce

관련 문제