在 RUnit 测试套件中使用 .setUp() 和 .tearDown() 函数
Using the .setUp() and .tearDown() function in RUnit testsuite
我的 R 测试有以下问题。我有测试函数需要更改数据库、计算结果、检查这些结果是否等于测试值并清理数据库。我正在尝试使用来自 MySQL 的事务和来自 RMySQL 的 dbBegin(con) 和 dbRollback(con) 函数。
我正在尝试 运行 以下代码:
.setUp <- function() {
dbBegin(con)
}
.tearDown <- function() {
dbRollback(con)
}
test.function1 <- function() {
....
}
test.function2 <- function() {
....
}
使用测试套件
test.suite <- defineTestSuite("example",
dirs = file.path("tests"),
testFileRegexp = '*.r')
test.result <- runTestSuite(test.suite)
printTextProtocol(test.result)
然而,当我 运行 多个函数时,我得到
Error in .local(conn, statement, ...) :
could not run statement: Duplicate entry '-1' for key 'PRIMARY'
这意味着我从不回滚我在数据库中写入的内容。
谁能指出上面的代码有什么问题and/or如何在 R + R 中编写测试MySQL来测试内部事务?
谢谢,
弗拉基米尔
这是测试更改 MySQL 数据库的 R 函数的正确方法。由于打字错误,我收到了错误。
我的 R 测试有以下问题。我有测试函数需要更改数据库、计算结果、检查这些结果是否等于测试值并清理数据库。我正在尝试使用来自 MySQL 的事务和来自 RMySQL 的 dbBegin(con) 和 dbRollback(con) 函数。
我正在尝试 运行 以下代码:
.setUp <- function() {
dbBegin(con)
}
.tearDown <- function() {
dbRollback(con)
}
test.function1 <- function() {
....
}
test.function2 <- function() {
....
}
使用测试套件
test.suite <- defineTestSuite("example",
dirs = file.path("tests"),
testFileRegexp = '*.r')
test.result <- runTestSuite(test.suite)
printTextProtocol(test.result)
然而,当我 运行 多个函数时,我得到
Error in .local(conn, statement, ...) :
could not run statement: Duplicate entry '-1' for key 'PRIMARY'
这意味着我从不回滚我在数据库中写入的内容。
谁能指出上面的代码有什么问题and/or如何在 R + R 中编写测试MySQL来测试内部事务?
谢谢, 弗拉基米尔
这是测试更改 MySQL 数据库的 R 函数的正确方法。由于打字错误,我收到了错误。