Scala 检查从配置文件检索的单元测试
在spark项目中,我们使用类型安全配置。我们有一个带有一些(必要的)冗余的大配置文件。很容易引用配置json的错误分支,有时错误会转移到生产代码中 我需要验证,对于给定的配置文件,所有对config.getString(x)的x文本调用都不会失败。Scala 检查从配置文件检索的单元测试,scala,typesafe-config,Scala,Typesafe Config,在spark项目中,我们使用类型安全配置。我们有一个带有一些(必要的)冗余的大配置文件。很容易引用配置json的错误分支,有时错误会转移到生产代码中 我需要验证,对于给定的配置文件,所有对config.getString(x)的x文本调用都不会失败。 我想编写一个单元测试,检查应用程序中使用的每个字符串,以获得配置值 我们找到的一个可能的解决方案是将所有配置值预加载到一个case类中,以便 val rawPath = config.getString("comp1.data.files.rawD
我想编写一个单元测试,检查应用程序中使用的每个字符串,以获得配置值 我们找到的一个可能的解决方案是将所有配置值预加载到一个case类中,以便
val rawPath = config.getString("comp1.data.files.rawData")
val coresNumber = config.getLong("comp1.setup.cores")
将成为
case class ConfigData(rawPath:String, coresNumber:Long)
def initConfig():ConfigData ={
val rawPath = config.getString("comp1.data.files.rawData")
val coresNumber = config.getLong("comp1.setup.cores")
ConfigData(rawPat,coresNumber)
}
val conf = initConfig()
val rawPath = conf.rawPath
val coresNumner = conf.coresNumber
然后只需调用initData()
测试配置加载错误
我也考虑过使用scala反射,但我需要在代码中找到调用config.getString(x)
的所有位置,然后获取x
以测试它们在配置文件中的存在性,但我找不到一种方法来获取方法调用的所有实例并对参数创建测试
有什么我没有想到的吗?一个解决方案是在单例中提供配置,您在启动服务器时对其进行初始化-因此只有在配置正确时服务器才会启动。或者在单元测试中运行配置 在此单例中,根据值的数量,您可以在单个
值
或案例类
中加载配置
我们使用它可以非常简单地将配置直接映射到案例类中
下面是一个没有纯脚本的示例:and
如果您需要更多信息,请告诉我。获取所有实例是什么意思?是否要测试所有tout配置文件是否都不包含错误?否,我需要验证对给定配置文件使用x literal对config.getString(x)的所有调用都不会失败。谢谢你的评论,我会更新我的问题谢谢你关于pureconfig的提示,我会调查的。但是,如果可能的话,我不希望在添加pureconfig时对代码进行太多更改,因为这样做会让我看到链接—使用一个没有纯脚本的旧项目的示例—它还会在启动时记录配置