2014-09-05 41 views
3

我通過testthat對R中許多更簡單的函數使用了單元測試,但是我有更復雜的函數,將簡單函數和業務邏輯相結合。我想通過前後視圖來測試輸入樣本的累積影響。理想情況下,我希望爲各種候選人更改做到這一點。如何測試和比較包的R函數的多個版本?

目前我:

  1. 使用Rmarkdown文件
  2. 裝入包中,是
  3. 讓我的樣品
  4. 通過封裝運行我的樣品,是和輸出表的結果
  5. source函數的新副本
  6. 再次運行我的示例並輸出res表ULTS
  7. 重裝包裝和source荷蘭國際集團的功能不同副本的要求

這已被證明困難,因爲那個坐在包命名空間仍在運行的功能包版本的一些功能,使結果不可靠,除非我徹底重裝所有下游的函數依賴。此外,該機制管理複雜,難以重複使用。

在R包中測試候選變更是否有更好的策略?

回答

0

也許你可以用每個版本的「Rcmd build YourPackage」替換第5步和第7步。然後用

install.packages("Path/To/MyPackage_1.1.tar.gz", type="source") 

測試的舊版本,然後通過在包含修正功能,我的影響分析文件夾內創建一個子包1.2

+0

嗯,但不需要重複覆蓋R文件夾中的文件? – 2014-09-09 13:48:17

+0

是的,正如使用源來加載新功能一樣。 我有我的包在我的保管箱文件夾,所以每次我點擊CTRL + S,Dropbox存儲該文件的新副本,我可以檢索過去兩週的每個版本。也許這也適合你? – 2014-09-10 15:25:43

1

更換1.1我已經減少了這個問題。

然後我用devtools::load_all來加載這些新的函數版本。

然後,我可以通過命名空間訪問原件來比較和對比結果,例如, myoriginalpackage:::testfunction同時看着新的testfunction