当前位置 : 主页 > 网络安全 > 测试自动化 >

用于测试的自动化测试的数据在哪里?

来源:互联网 收集:自由互联 发布时间:2021-06-19
我正在使用 Hadley’s testthat-based approach自动测试我的包. 在这种方法中,最适合放置测试数据文件的地方是什么?我的意思是仅在测试/测试中测试脚本使用的文件),而不是R /中的任何其他
我正在使用 Hadley’s testthat-based approach自动测试我的包.

在这种方法中,最适合放置测试数据文件的地方是什么?我的意思是仅在测试/测试中测试脚本使用的文件),而不是R /中的任何其他功能.

我目前的方法是把它们放在tests / testdata中,然后用相对路径read.table来读取.而不是用system.file(为了避免安装包来运行测试).

到目前为止,有什么最佳做法吗?

>测试保存在一个前缀为’test_’的文件中
>数据保存在以’helper_’为前缀的文件中

软件包目录和文件结构:

└──pkg_name/
    ├── DESCRIPTION
    ├── NAMESPACE
    ├──.Rbuildignore
    ├── data/
    ├── man/
    ├── R/
    ├── vignettes/
    └── tests/
        ├── testthat.R
        └── testthat/
             └── helper_myfunc1.R
             └── helper_myfunc2.R
             └── test_pkg_name.R

testthat.R

library(testthat)
library(pkg_name)
test_check("pkg_name")

helper_myfunc1.R包含测试myfunc1函数的数据

a1 <- 2
a2 <- 2
b1 <- 2*3
b2 <- 6

helper_myfunc2.R包含测试myfunc2函数的数据

c1 <- 50/2
c2 <- 25
d1 <- c(2,3)
d2 <- c(2,3)

test_pkg_name.R包含包中的函数和其他对象的测试

context('pkg_name_functions')

test_that('myfunc1',
          {
            expect_identical(a1, a2)
            expect_identical(b1, b2)
          })

test_that('myfunc2',
          {
            expect_identical(c1, c2)
            expect_identical(d1, d2)
          })

进行单元测试

library("devtools")

devtools::load_all()
# Loading pkg_name

devtools::test()
# Loading pkg_name
# Testing pkg_name
# pkg_name_functions: ....

# DONE ================================================================
网友评论