Рубрики
Uncategorized

Кулинарная книга: Начало работы с R

Некоторые из самых загруженных пакетов R построены на TRAVIS CI. В этой поваренной книге вы увидите, как легко … Tagged с R, функциями, DevOps, сообществом.

Некоторые из самых загруженных пакетов R построены на TRAVIS CI. В этой поваренной книге вы увидите, насколько легко это просто настроить TRUVIS CI в существующем проекте R.

Давайте предположим, что у вас есть файл под названием Основные_операции. R , и это читает что-то вроде этого:

add <- function(a, b){
  result <- a + b
  return(result)
}


subtract <- function(a, b){
  result <- a - b
  return(result)
}

divide <- function(numerator, denominator){
  if(denominator == 0){
    stop("Nah")
  }
  else {
    result <- numerator / denominator
    return(result)
  }
}

Реализация Трэвиса СИ

Теперь вы хотите получить автоматическое тестирование. К счастью, есть Трэвис СИ! Давайте начнем с .travis.yml файл:

language: R
cache: packages
warnings_are_errors: false

Агрегатные тесты

Для модульных тестов мы хотим использовать что-то называемое testthat Отказ Скажем, мы назвали весь весь проект Sampler Отказ Ваш начальный testthat. R Файл будет выглядеть похоже на это:

library(testthat)
library(sampleR)

test_check("sampleR")

В вашем Тесты каталог, вы заметите /Тесты/testthat И давайте скажем, у вас есть файл в туда-под названием Test-Basic_oPerations. R И все происходит следующим образом:

test_that("addition works", {

  a <- runif(1)
  b <- runif(1)

  expect_equal(a + b, add(a, b))

  a <- -1 * runif(1)
  b <- runif(1)

  expect_equal(a + b, add(a, b))
})

test_that("subtraction works", {

  a <- runif(1)
  b <- runif(1)

  expect_equal(a - b, subtract(a, b))

  a <- -1 * runif(1)
  b <- runif(1)

  expect_equal(a - b, subtract(a, b))
})

test_that("division errors if zero", {
  expect_error(divide(1, 0), "Nah")
})

test_that("division works", {

  a <- runif(1)
  b <- runif(1)

  expect_equal(a / b, divide(a, b))

  a <- -1 * runif(1)
  b <- runif(1)

  expect_equal(a / b, divide(a, b))
})

Вы можете увидеть в этом тесте подразделения, мы тестируем, если разделение , Дополнение и вычитание проходит тест подразделения.

Заканчивать

На данный момент вы все набор и готов к вашему R проект построить. Последнее, но не менее важное, есть альтернативные способы получить пакеты при построении вашего .travis.yml.yml.yml . Например, если я хотел получить пакеты из GitHub, это будет выглядеть что-то подобное:

r_github_packages: r-lib/testthat

Другая альтернатива — использовать Кран . Вот как это будет выглядеть схватить вашу посылку от Кран :

r_packages:
  - testthat

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

Оригинал: «https://dev.to/travisci/the-cookbook-getting-started-with-r-2hen»