Skip to content

Issues Encountered While Testing a Multi-Service gRPC Server with Runn #709

@xiao-yao-tn

Description

@xiao-yao-tn

I am experiencing a consistent issue while using Runn for testing my gRPC services.
When attempting to test a specific service, let's refer to it as ServiceA/MethodA,
Runn unexpectedly reports an error related to a different service, which we will call ServiceB.
This error occurs even though ServiceB is not directly involved in the test case for ServiceA/MethodA.

error message

1) grpc/tests/ServiceA_test.yml
   └── grpc/tests/requestBase.yml
  Failure/Error: gRPC request failed on "Generated by `runn new`".steps[0]: failed to find descriptor: symbol not found: ServiceB
  Failure step (grpc/tests/requestBase.yml):
  ...

yaml file

desc: TestServiceA
vars:
  request:
    - "json://../test-data/ServiceA/0-request.json"
  response:
    - "json://../test-data/ServiceA/0-response.json"
steps:
  - loop:
      count: len(vars.request)
    include:
      path: requestBase.yml
      vars:
        ignoreField: "request_time"
        request: "{{ vars.request[i] }}"
        response: "{{ vars.response[i] }}"
        testPath: "ServiceA/MethodA""

requestBase.yml

runners:
  greq:
    addr: ${BASE_GRPC_URL} 
    tls: false 
steps:
  - greq:
      "{{ vars.testPath }}":
        message: "{{ vars.request }}"
    test: compare(current.res.message, vars.response, vars.ignoreField)

When ServiceB is removed from our gRPC server, and the gprc_cli return the service list like following.
Runn tests for ServiceA/MethodA proceed without any issues.

% ./grpc_cli ls localhost:8081
grpc.reflection.v1alpha.ServerReflection
ServiceA

I would greatly appreciate any insights or guidance on this issue.
It's unclear why Runn is requiring ServiceB for tests related to ServiceA.
Is there a potential issue in how Runn handles service dependencies, or could this be related to our specific setup?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions