Я работаю над сценарием сквозного тестирования, в котором мне нужна карта перфокарт пользовательской записи, использующая ключ, который является ссылкой на идентификатор meta_table в том же сценарии использования.
В то время как пользовательские данные хранятся в базе данных NoSQL, meta_table хранится в RDBMS и использует автоматически сгенерированный идентификатор, поэтому каждый раз, когда я запускаю только тестовый рабочий процесс meta_table для тех же самых случаев использования, генерируется совершенно новый идентификатор.
Вот мой рабочий процесс настройки данных:
pipeline:
db1:
register:
action: dsunit:register
datastore: db1
config:
driverName: mysql
descriptor: '[username]:[password]@tcp(127.0.0.1:3306)/[dbname]?parseTime=true'
credentials: $mysqlCredentials
parameters:
dbname: db1
prepare:
sequence:
datastore: db1
action: dsunit.sequence
tables:
- meta_table
post:
- seq = $Sequences
data:
action: nop
init:
- db1key = data.db1.setup
- db1Setup = $AsTableRecords($db1key)
setup:
datastore: db1
action: dsunit:prepare
data: $db1Setup
db2:
register:
action: dsunit:register
datastore: db2
config:
driverName: aerospike
descriptor: tcp([host]:3000)/[namespace]
parameters:
namespace: test
host: 127.0.0.1
port: 3000
prepare:
data:
action: nop
init:
- db2key = data.db2.setup
- db2Setup = $AsTableRecords($db2key)
setup:
datastore: db2
action: dsunit:prepare
data: $db2Setup
И вот мои файлы данных:
@db1_setup.json
[
{
"Table": "meta_table",
"Value": {
"id": "$seq.meta_table",
"name": "Name 1",
"type_id": 1
},
"PostIncrement": [
"seq.meta_table"
],
"Key": "${tagId}_meta_table"
}
]
@db2_setup.json
[
{
"Table": "user",
"Value": {
"id": "$userID",
"email": "user@abc.com",
"perf": {
"??meta_table.id here??": "$timestamp"
}
},
"AutoGenerate": {
"userID": "uuid.next"
},
"Key": "${tagId}_user"
}
]
Я ищу правильное выражение для замены:
"??meta_table.id here??"
для расширения до meta_table.id,
Я пробовал следующее, но ничего не получалось:
- $ meta_table.id
- $ {meta_table.id}