如何使用@csvsource

时间:2018-07-31 14:18:51

标签: java junit5 parameterized-tests

给出一个简单的测试方法,该方法被注释为@ParameterizedTest,并通过注释@CsvSource使用输入(例如@CsvSource({ "@", "*", "#", "?", "-", "$", "!", "0" })。在运行上述测试时,测试应在"#"被测试后立即中断。在阅读stacktrace / exception时,我发现了以下内容:

org.junit.jupiter.params.shadow.com.univocity.parsers.common.TextParsingException: java.lang.IllegalArgumentException - Unable to skip 1 lines from line 2. End of input reached
  Parser Configuration: CsvParserSettings:
    ...
    CsvFormat:
      Comment character=# 
      Field delimiter=,
      Line separator (normalized)=\n
      Line separator sequence=\r\n
      Quote character='
      Quote escape character='
      Quote escape escape character=null

我想问题出在最后一个块(Comment character=#)中:特定参数正在作为注释读取。如何更改此设置?

1 个答案:

答案 0 :(得分:0)

您不能更改注释字符。

可以#用单引号引起来,如下所示:

@CsvSource({ "@", "*", "'#'", "?", "-", "$", "!", "0" })

但是实际上您不应该对单个字符串使用@CsvSource

相反,只需使用以下内容:

@ValueSource(strings = { "@", "*", "#", "?", "-", "$", "!", "0" })