我有一个普通的闪亮的脚本来测试我闪亮的应用程序。当我使用shinytest::testApp运行它时,它是成功的: JSON文件和图像在当前和预期之间都是相似的。
但是当测试通过运行时,
expect_pass(
testApp(
system.file("app", package = "shinyCircularDichroism"),
compareImages = TRUE
)
)然后图像是相同的,但JSON文件不同:
Name Status
001.json != Files differ
001.png No change
002.json != Files differ
002.png No change
003.json != Files differ
003.png No change
004.json != Files differ
004.png No change
005.json != Files differ
005.png No change 我检查了JSON文件之间的差异。实际上,与顺序是相同的(即,一个是[a, b, ...,另一个是[b, a, ...])。
这是一个众所周知的问题吗?为什么只有通过测试才会发生这种情况?有没有办法将JSON文件与订单进行比较?
发布于 2022-08-27 12:45:43
这要归功于@bretauv所发现的Github问题。这个问题是由LC_COLLATE变量引起的。根据该变量的值,sort的结果可能有所不同。
library(shinytest)
collation <- Sys.getlocale("LC_COLLATE")
Sys.setenv(LC_COLLATE = "en_US.UTF-8")
Sys.setlocale("LC_COLLATE", "en_US.UTF-8")
shinytest::testApp("../")
Sys.setlocale("LC_COLLATE", collation)以及:
test_that("Shiny test", {
skip_if_not_installed("shinytest")
library(shinytest)
collation <- Sys.getlocale("LC_COLLATE")
Sys.setenv(LC_COLLATE = "en_US.UTF-8")
Sys.setlocale("LC_COLLATE", "en_US.UTF-8")
expect_pass(
testApp(
system.file("app", package = "shinyCircularDichroism"),
quiet = TRUE,
compareImages = TRUE
)
)
Sys.setlocale("LC_COLLATE", collation)
})https://stackoverflow.com/questions/73471669
复制相似问题