Не удается найти сервис GRP C со сторонним импортом в файле прото - PullRequest
0 голосов
/ 17 марта 2020

Я пытаюсь использовать gripmock, чтобы высмеивать мои вызовы grp c. Я получаю ошибку, которая описана в здесь , за исключением того, что это не работает для меня. Я думаю, что в другом случае у меня есть несколько сторонних библиотек, и они не могут их разрешить.

Вот что я делаю:

docker run --rm -p 4770:4770 -p 4771:4771 -v <myrootfolder>:/proto tkpd/gripmock:latest --imports=/proto /proto/evaluator_api.proto

и я get

thirdparty/validator/validator.proto: File not found.
evaluator/v1beta2/evaluator.proto: File not found.
evaluator/v1beta2/subject.proto: File not found.
evaluator_api.proto: Import "thirdparty/validator/validator.proto" was not found or had errors.
evaluator_api.proto: Import "evaluator/v1beta2/evaluator.proto" was not found or had errors.
evaluator_api.proto: Import "evaluator/v1beta2/subject.proto" was not found or had errors.

Evaluator и Subject находятся в одной папке, поэтому он должен найти хотя бы их. Я не являюсь владельцем кода, поэтому я не могу просто изменить имена пакетов.

Я попытался взломать его, поместить все в одну папку и запустить со всеми файлами, указанными в пример:

docker run --rm -p 4770:4770 -p 4771:4771 -v <myrootfolder>:/proto tkpd/gripmock:latest --imports=/proto /proto/descriptor.proto /proto/validator.proto /proto/subject.proto /proto/evaluator.proto /proto/evaluator_api.proto

В этом случае я получаю

google/protobuf/descriptor.proto: File not found.
validator.proto: Import "google/protobuf/descriptor.proto" was not found or had errors.
validator.proto:18:8: "google.protobuf.FieldOptions" seems to be defined in "descriptor.proto", which is not imported by "validator.proto". To use it here, please add the necessary import.
validator.proto:22:8: "google.protobuf.OneofOptions" seems to be defined in "descriptor.proto", which is not imported by "validator.proto". To use it here, please add the necessary import.

Любые идеи, как это исправить, или он не поддерживает atm?

Или, если есть какие-либо альтернативы в Gripmock (что-то, что я могу интегрировать в код в моих тестах), это тоже было бы полезно.

...