2010-03-30 2 views
45

R은 통계 프로그래밍 언어입니다. R의 일부는 R 언어로 작성된 패키지 사용입니다. 프로그래밍 우수 사례에는 이들 패키지가 작성되는 동안 및 사용되는 시점에서 기능을 테스트하기위한 단위 테스트의 사용이 포함됩니다. R 언어의 단위 테스트 지원의 현재 상태는 무엇입니까

  • RUnit
  • Svunit
  • 내가 알고 관심
  • Testthat
  • 나는 R 내에서 단위 테스트를 위해 몇 가지 패키지를 알고, 이러한 것을

      ;

      다른 패키지가 있습니까? 사람들의 경험에 비추어 볼 때,이 패키지들은 다른 점에서 탁월합니까? R에 대한 단위 테스트의 현재 상태는 무엇입니까?

    답변

    30

    단위 테스트에서 R 위키도하는 것 같다 다소 해결 된 문제는, 이렇게 세 가지 패키지는 가능성이 귀하의 요구에 적합 할 것이다. 비록 그들 사이에 미묘한 차이가 있습니다 :

    RUnit은 xunit을 기반으로하므로 다른 언어의 버전을 사용했다면 쉽게 이해할 수 있습니다.

    는 RUnit과 동일한 테스트를 사용하지만 대화식 사용을 지원하는 GUI를 포함합니다.

    testthat은 많은 기능을 포함하고 있으며 변경되지 않은 파일에 대해서만 테스트를 실행할 수 있으므로 큰 프로젝트를 테스트 할 때 유용합니다.


    몇 년 후 ...

    RUnitsvUnit은 여전히 ​​메시지 및 경고,도 테스트 캐싱에 대한 검사를하지 않아도, 그래서, 많은 개발로 testthat을하지 않는 것 새로운 프로젝트를위한 첫 번째 선택이되어야합니다. 내 runittotestthat 패키지를 사용하여 RUnit 테스트를 testthat 테스트로 변환 할 수 있습니다.

    +1

    'svUnit'은 연속 통합 툴 [Hudson] (https://hudson.dev.java.net/)이 이해할 수있는 출력을 제공 할 수 있습니다. – mariotomo

    +1

    베타 버전과 github (devtools :: install_github ("brodieg/unitizer")')에서는 여전히 ** ** [unitizer] (https://github.com/brodieG/unitizer) **가 있습니다. 기존 프레임 워크와 테스트 표현식 및 결과 객체를 저장하여 회귀를 쉽게 검사 할 수 있기 때문에 상당히 다릅니다. – BrodieG

    6

    여기가 Google에서 발견 한 몇 가지 사항입니다.

    이 주제는 위에 패키지를 언급 ​​한 메일 링리스트 here에서 논의되었습니다. RUnit과 svunit은 동일한 테스트 코드를 실행하지만 Runit에는 추적 및 코드 범위 기능이 있습니다.

    두의 비교 http://rwiki.sciviews.org/doku.php?id=developers:runit

    +0

    RUnit에서 제공하는 "코드 범위"에 대한 내용은 [이 메시지] (https://sourceforge.net/mailarchive/message.php?msg_name=474C639E.5080900%40epigenomics.com)를 확인하십시오. 그것은 2007 년 11 월부터이지만 여전히 나타납니다. – mariotomo

    +0

    @mariotomo : 링크가 더 이상 작동하지 않는 것 같습니다. 모든 의견이나 업데이트? – Iterator

    +0

    직접 링크보다 나은 메시지를 찾는 방법입니다. 그것은 sourceforge.net에있는'runit' 프로젝트의'runit-help' 메일 링리스트에 있습니다. 그것은'runit'의 저자에 의해 작성되었으며 2007-11-27 18:36에 타임 스탬프가 찍혀있다.»검사 메커니즘은 한 번에 하나의 함수 호출 만 추적 할 수 있으므로 다소 비실용적이므로 검사 메커니즘은 많이 사용되지 않고 테스트되지 않습니다. 이것은 코드 커버리지 도구가 아닙니다.« – mariotomo

    관련 문제