devtools::check
에서 사용되는 환경을 재현하는 방법이 있습니까?devtools :: check에서 testthat가 실패하지만 devtools :: test에서 작동합니다
내 테스트가 devtools::test()
과 작동하지만 devtools::check()
내에서 작동하지 않는 문제가 있습니다. 내 문제는 지금 문제를 찾는 방법입니다. check
의 보고서는 오류 로그의 마지막 몇 줄만을 인쇄하기 때문에 테스트를위한 전체 보고서를 찾을 수 없습니다.
checking tests ... ERROR
Running the tests in ‘tests/testthat.R’ failed.
Last 13 lines of output:
...
나는 check
이 test
에 비해 다른 환경을 사용하지만 나는 그들이 전혀 재현하지 않기 때문에 나는이 문제를 디버깅하는 방법을 모르는 것을 알고있다. 특히이 테스트는 몇 달 전에 실행되었으므로 문제를 찾을 위치가 확실하지 않습니다.
편집 실제로 나는 내 문제를 찾기 위해 노력하고 나는 해결책을 찾아 냈다. 하지만 내 솔루션을 게시하려면 세부 정보를 추가해야합니다.
따라서 오류없이 실행 중이며 나중에 환경 변수 중 일부가 올바르게 설정되어 있는지 확인한 후 markdown 스크립트를 테스트 한 이후로 내 테스트가 항상 실패했습니다. 이것들은 내가 설정 한 스크립트뿐만 아니라 표준 설정으로 계산 한 결과입니다. 그래서 개발 후 일부 설정을 변경하는 것을 잊었을 때 경고를 받고 싶었습니다 ...
어쨌든, markdown 스크립트이므로 코드를 추출해야하고이 게시물의 주석을 사용하고있었습니다. knitr: run all chunks in an Rmarkdown document 코드를 얻으려면 knitr::purl
, 실행하려면 sys.source
. 어떤 이유
runAllChunks <- function(rmd, envir=globalenv()){
# as found here https://stackoverflow.com/questions/24753969
tempR <- tempfile(tmpdir = '.', fileext = ".R")
on.exit(unlink(tempR))
knitr::purl(rmd, output=tempR, quiet=TRUE)
sys.source(tempR, envir=envir)
}
, 이것은 아마 몇 주 (I 최근에 설치 확실하지 않은 새로운 패키지 ...) 이후 오류가 발생합니다. 그러나 새로운 코멘트가 있기 때문에 코드를 실행하는 knitr::knit
을 사용할 수도 있습니다. 예상했던대로 작동하고 이제는 더 이상 불평하지 않습니다.
그래서 결국 문제가 정확히 어디 있었는지 모르지만 지금은 효과가 있습니다.
실제로이 문제는 해결되지 않습니다. 이전과 같은 문제 ... 그리고'testthat' 실행 로그를 읽을 가능성은 여전히 없습니다 :-( – drmariod