## generator create-e2e-raw

Create _raw_table.csv for e2e test

### Synopsis

Create _raw_table.csv for e2e test
Type in what the raw_table is, then generator will export and save in plugins/$plugin_name/e2e/_raw_$raw_name.csv for you.

```
generator create-e2e-raw [plugin_name] [raw_table_name] [csv_file_name] [flags]
```

### Options

```
  -h, --help   help for create-e2e-raw
```

### Options inherited from parent commands

```
      --config string     config file (default is PROJECT/.env)
      --modifyExistCode   allow generator modify exist code (default true)
```

### SEE ALSO

* [generator](generator.md)	 - Apache DevLake Cli Tool -- Code Generator

###### Auto generated by spf13/cobra on 27-Jun-2022
