用R中的testthat清洁测试后的测试环境

时间:2020-11-12 10:54:32

标签: r unit-testing testthat

我正在研究一个R软件包,其中在测试安装过程中(在安装文件中)定义了列表对象。

obj_1 <- list(a = A, b = B)

此后,对obj_1的所有元素的测试将循环执行。现在,我发现我实际上不需要对象B。因此,我在设置期间排除了B的创建,并使用obj_1 <- list(a = A)第二次运行测试。奇怪的是,在测试循环中似乎在obj_1中找到了b并且测试失败,因为找不到B。如果我重新启动R并重新运行测试,一切都会通过。不知何故,似乎obj_1(带有A和B)都从第一次测试开始就存储在测试环境中。

在测试结束时,我需要rm(list = ls())之类的东西,包括在teardown.R文件中的此语句不能解决问题。 withr::defer(cleanup(), teardown_env())也无济于事。以某种方式,我认为可以使用此处描述的一种方法解决此问题:https://testthat.r-lib.org/articles/test-fixtures.html

是否应该自动清理测试环境?

0 个答案:

没有答案