2014-10-12 169 views
3

我在一個包中的一些C++代碼,我想單元測試,我不希望導出到R.我看到:單元測試代碼RCPP在包

Unit tests for code in the /src folder of an R package?

和我想測試的代碼屬於第二類:

或者你認爲你的C代碼更加獨立,在這種情況下,你可以使用一個bazillion單元測試框架之一C.

如果有人想從C++(不使用R框架)進行測試,那麼設置測試套件的最佳方式是什麼?你把你的C++測試放在tests/中,然後在某個地方有一個C++程序,或者你編寫了一個驅動函數來執行所有C++測試,然後從R中調用它?

我想這可能是一個好主意,讓測試自動化爲R CMD check,我不清楚如何自動化使用R包框架。

+0

我建議你把你的問題縮小到編程範圍之內。還要注意,這些問題很有可能被關閉爲「尋找工具」或「基於意見」。 – 2014-10-12 08:51:01

+1

如果您想通過'R CMD check'運行測試,您可以考慮添加一個'configure'或'cleanup'腳本來調用運行這些測試文件的其他腳本。有關更多詳細信息,請參閱http://cran.r-project.org/doc/manuals/r-release/R-exts.html#Configure-and-cleanup。 – 2014-10-12 20:41:45

+0

@KevinUshey,謝謝!這一定會奏效!我希望已經有一些規範的方法可以在不編寫其他腳本的情況下做到這一點,但似乎並非如此。 – Harold 2014-10-12 21:35:32

回答

3

我不明白:

  • 它要麼Rcpp代碼,但你不想將其暴露於R:您灣的時刻把它暴露在(R)單元測試(在包裝框架中)你做。
  • 或者這只是一個挑選(很多)C++單元測試框架(如Boost Test庫,或Google C++ Testing library或... --- ---其中沒有一個已經移植到R「這樣的」

你能澄清一下你的問題嗎?

也許你只是想表達一下你的C++代碼的方式,讓Rcpp僅從單元稱之爲測試讓你得到結果,你可以再測試通過的流行[R單元測試框架之一。在這種情況下,答案可能非常類似於CRAN中的任何一個(當前)276 Rcpp使用包,而實際上使用單元測試的

+0

謝謝你的迴應,Dirk。我更新了我的問題 - 請讓我知道如果它仍然不清楚。 – Harold 2014-10-12 16:30:29

+0

Rcpp有一個非常明確的範圍。這裏你想要的東西似乎超出了這個範圍,至少在我的理解中。 Rcpp依然可以幫助你,但是你本質上有一個完全不同的問題(「我如何運送和測試一個C++庫」),這事先與R沒有任何關係。 – 2014-10-12 18:47:34