Действия GitHub - запуск тестов DotNetCore с зависимостью от сервиса Neo4j - PullRequest
0 голосов
/ 03 мая 2020

Мне нужна помощь с шагами для запуска интеграционных тестов на GitHub. Мой проект нуждается в Neo4j, поэтому я объявил neo4j как сервис. Однако во время выполнения моего тестового проекта я вижу следующую ошибку

Connection with the server breaks due to ExtendedSocketException: 
Resource temporarily unavailable Please ensure that your database is listening on the correct 
host and port and that you have compatible encryption settings both on Neo4j server and driver. 
Note that the default encryption setting has changed in Neo4j 4.0.

Я не уверен, что проблема в том, как я указываю действия или что-то делать с Neo4j.

Вот мой файл CI GitHub: dotnetcore.yml

name: .NET Core

on:
  push:
    branches: [ master, GithubActions ]
  pull_request:
    branches: [ master ]

jobs:
  build:
    runs-on: ubuntu-latest

    env:
      NEO4J_HOST: neo4j

    # Service containers to run with `container-job`
    services:
      # Label used to access the service container
      neo4j:
        # Docker Hub image
        image: neo4j:4.0.1
        ports:                    
        - 7474:7474 # used for http
        - 7687:7687 # used for bolt
        env:       
          NEO4J_AUTH: neo4j/password  
          NEO4J_dbms_connector_http_advertised__address: "NEO4J_HOST:7687"
          NEO4J_dbms_connector_bolt_advertised__address: "NEO4J_HOST:7687"

    steps:
    - uses: actions/checkout@v2

    - name: Setup .NET Core
      uses: actions/setup-dotnet@v1
      with:
        dotnet-version: 3.1.101

    - name: Install dependencies
      run: dotnet restore  ./src/BbcCorp.Neo4j.NeoGraphManager.sln

    - name: Build
      run: dotnet build --configuration Release --no-restore ./src/BbcCorp.Neo4j.NeoGraphManager.sln

    - name: Run Integration Tests 
      env:
        NEO4J_SERVER: NEO4J_HOST
      run: |
        cd ./src/BbcCorp.Neo4j.Tests
        docker ps
        dotnet test --no-restore --verbosity normal BbcCorp.Neo4j.Tests.csproj

Я пытаюсь подключиться к: bolt://NEO4J_HOST:7687, но он просто не подключается.

Сведения об ошибке:

Using Neo4j Server NEO4J_HOST:7687 as neo4j/password
Error executing query. Connection with the server breaks due to ExtendedSocketException: Resource temporarily unavailable Please ensure that your database is listening on the correct host and port and that you have compatible encryption settings both on Neo4j server and driver. Note that the default encryption setting has changed in Neo4j 4.0.
[xUnit.net 00:00:00.83]     NeoGraphManagerIntegrationTests.SimpleNodeTests [FAIL]
[xUnit.net 00:00:00.83]       Neo4j.Driver.ServiceUnavailableException : Connection with the server breaks due to ExtendedSocketException: Resource temporarily unavailable Please ensure that your database is listening on the correct host and port and that you have compatible encryption settings both on Neo4j server and driver. Note that the default encryption setting has changed in Neo4j 4.0.
[xUnit.net 00:00:00.83]       ---- System.Net.Internals.SocketExceptionFactory+ExtendedSocketException : Resource temporarily unavailable

Файл настроек для моего C# тестового проекта выглядит следующим образом

{
    "NEO4J_SERVER": "localhost",
    "NEO4J_PORT": 7687,
    "NEO4J_DB_USER": "neo4j",
    "NEO4J_DB_PWD": "password"
}

Тесты выполняются нормально с моей локальной машины, но не проходят когда мы выполняем на GitHub.

...