用R中的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

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

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...