R with testthat: получить список экспортируемых функций - PullRequest
0 голосов
/ 12 июня 2018

Я отправляю текстовый файл со всеми перечисленными экспортированными функциями.Чтобы убедиться, что все функции перечислены, я хотел бы создать модульный тест с помощью testthat и сравнить все экспортируемые функции с функцией в текстовом файле.Мой текущий подход читает в файле и сравнивает его с ls("package:myPackage").Но этот вызов возвращает длинный список всех функций всех импортированных пакетов.Любые идеи, как решить эту проблему?

Совершенно другой подход заключается в создании этого файла автоматически.Но я думаю, что первый подход легче реализовать.Будем надеяться.

1 Ответ

0 голосов
/ 04 июля 2018

Благодаря @ Emmanuel-Lin вот мое решение:

require(data.table)
test_that("Function List", {
  # read namespace and extract exported functions
  funnamespace = data.table(read.table(system.file("NAMESPACE", package = "PackageName"), stringsAsFactors = FALSE))
  funnamespace[, c("status", "fun") := tstrsplit(V1, "\\(")]
  funnamespace[, fun := tstrsplit(fun, "\\)")]
  # read function list
  funlist = read.csv2(system.file("subdirectory", "functionList.txt", package = "PackageName"), stringsAsFactors = FALSE)
  # test
  expect_equal(funnamespace[status == "export", fun], funlist[, 1])
})

Очевидно, мне было лень выработать правильное регулярное выражение для замены двух tstrsplit на одну строку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...