首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“shinytest”预期和当前json文件之间的顺序差异

“shinytest”预期和当前json文件之间的顺序差异
EN

Stack Overflow用户
提问于 2022-08-24 10:37:44
回答 1查看 28关注 0票数 0

我有一个普通的闪亮的脚本来测试我闪亮的应用程序。当我使用shinytest::testApp运行它时,它是成功的: JSON文件和图像在当前和预期之间都是相似的。

但是当测试通过运行时,

代码语言:javascript
复制
  expect_pass(
    testApp(
      system.file("app", package = "shinyCircularDichroism"),
      compareImages = TRUE
    )
  )

然后图像是相同的,但JSON文件不同:

代码语言:javascript
复制
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文件与订单进行比较?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-27 12:45:43

这要归功于@bretauv所发现的Github问题。这个问题是由LC_COLLATE变量引起的。根据该变量的值,sort的结果可能有所不同。

代码语言:javascript
复制
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)

以及:

代码语言:javascript
复制
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)
})
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73471669

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档