Мне поручено написать несколько тестов, чтобы убедиться, что определенные строки журнала появляются в конечном содержимом журнала.Существует такое регулярное выражение:
PreAuthClientResponse\(responseRawData=\{"result":".+"\}, advice=.+, scoring=.+\)
И оно работает в локальных средах.
Когда я нажимаю на Gitlab, конвейер запускается и дает сбой.Я добавляю --info
после gradlew test
в .gitlab-ci.yml
, чтобы быть более многословным, и вижу это:
{ 'host': 'runner-8cedea08-project-721-concurrent-0', 'message': 'Client response: PreAuthClientResponse(responseRawData={'result':'No Fraud'}, advice=No Fraud, scoring=null), merchant reference: ABC123456, transaction id: ada9401e-4098-4509-81cd-11993bdf7557 ', 'timestamp': '2019-06-18T13:44:56.002Z', 'service': 'xxxxx', 'env': 'ci', 'severity': 'INFO', 'trace': '', 'span': '', 'thread': 'Test worker', 'class': 'c.v.f.preauth.service.PreAuthService' }
Обратите внимание, что 'result':'No Fraud'
заключено в кавычки single , итолько в конвейере, потому что локальные тесты проходят с регулярным выражением двойных кавычек.
Я изменю регулярное выражение на менее специфичное, чтобы пропустить эту ошибку.Но gitlab CI имеет разные форматы относительно литералов JSON?Я думал, что одинарные кавычки в литералах в JSON недопустимы.