JUnit 5 @CsvFileSource 的动态文件路径

问题描述 投票:0回答:1

我使用下面的方法在参数化 JUnit5 测试中访问 csv 文件,但是有没有办法动态提供此 csv 文件或指向 csv 文件位置的不同文件路径?

@CsvFileSource(resources = "/testDataFile/testData.csv" , numLinesToSkip = 1, delimiter =  ';', encoding = "UTF-8")

换句话说,我可以动态更新“/testDataFile/testData.csv”吗?

我想要一种动态传递 csv 文件的文件路径的方法,这样它就不是硬编码的位置或文件名。

junit5 parameterized
1个回答
0
投票

恐怕这是不可能的。一般来说,注释的值必须是常量表达式。并且

@CsvFileSource
API 不支持对所提供的值进行动态/编程控制,至少据我所知。

两种可能的定制解决方案:

  1. 基于

    @ArgumentsSource
    (非公开)创建一个
    ArgumentsProvider
     和相应的 
    CsvArgumentsProvider

  2. 创建一个 扩展,动态创建在

    resources
    中指定为
    files
    /
    @CsvFileSource
    的 CSV 文件。

© www.soinside.com 2019 - 2024. All rights reserved.