使用“read”读取csv文件时如何参数化场景大纲

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

我有以下场景概述来根据环境读取文件。

场景概要:

鉴于

什么时候

然后

示例:

|读取('testdata-SIT'.csv)|

我想根据测试运行的环境参数化'testdata-'.csv

我通过从 config.js 文件传递 env 变量尝试了以下操作。

  1. |读取 ('testdata'+env+'.csv') | - 没用

  2. *def 文件名 = 'testdata'+env+'.csv'

      | read(filename) | - didnt work
    

在上述2种情况下,文件未正确替换,因此出现文件未找到错误。

请建议正确的做法。谢谢!

karate
1个回答
0
投票

是的,

Scenario Outline
的动态版本是在
karate-config.js
之前评估的。每“行”数据的“正常流程”(包括
Background
(如果适用))必须调用
karate-config.js
。 “在所有行之前”额外调用一次会导致问题,并且每个场景都不会从“干净的石板”开始。

引入

@setup
标签是为了解决在动态轮廓之前设置数据的需要。所以你可以这样做:

特点:

@setup Scenario: * def data = read(filename) Scenario Outline: * print __row Examples: | karate.setup().data |
    
© www.soinside.com 2019 - 2024. All rights reserved.