【问题标题】:Java Unit Tests of components that uses Firebase使用 Firebase 的组件的 Java 单元测试
【发布时间】:2020-12-30 00:57:49
【问题描述】:

我正在开展一个使用 Firebase 存储数据的项目,并且正在进行一些单元测试。我设置了一个 GitHub Action,它在每个推送或拉取请求上执行 mvn package 和 mvn test,问题是我在执行测试时收到以下错误:

java.io.IOException:应用程序默认凭据不可用。如果在 Google Compute Engine 中运行,它们就可用。否则,必须定义环境变量 GOOGLE_APPLICATION_CREDENTIALS 指向定义凭据的文件。请参阅https://developers.google.com/accounts/docs/application-default-credentials 了解更多信息。

我已经使用 .json 创建了秘密,这就是我编写 GitHub 操作的方式:

name: Maven CI/CD

on:
  push:
    branches: [ develop ]
  pull_request:
    branches: [ develop ]

jobs:
  build_and_test:
    runs-on: ubuntu-latest
            
    steps:
    - uses: actions/checkout@v2
    - name: Set up JDK 15
      uses: actions/setup-java@v1
      with:
        java-version: 15

    - name: Cache the Maven packages to speed up build
      uses: actions/cache@v1
      with:
        path: ~/.m2
        key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
        restore-keys: ${{ runner.os }}-m2      

    - name: Build project with Maven
      run: mvn -B package --file pom.xml
      env: 
        GOOGLE_APPLICATION_CREDENTIALS: ${{ secrets.GOOGLE_APPLICATION_CREDENTIALS }}
    
    - name: Run (J)Unit tests
      run: mvn clean test
      env:
        GOOGLE_APPLICATION_CREDENTIALS: ${{ secrets.GOOGLE_APPLICATION_CREDENTIALS }}

【问题讨论】:

  • 试图分离未分离的东西。运行mvn packagemvn clean test 没有意义...重复几个部分。因为package 生命周期包括test...此外,您使用的是旧版本的 github 操作缓存(检查操作/缓存的位置)...此外,关于谷歌的文档说变量 GOOGLE_APPLICATION_CREDENTIALS 指向一个文件...?
  • 是的,我会更新动作!是的,但它是一个 .json 文件!
  • 错误信息表明有些不同。

标签: java firebase maven unit-testing


【解决方案1】:

我发现它没有使用更新版本的操作。无论如何,我解决了使用 google-github-actions/setup-gcloud@master 设置如下:

- uses: google-github-actions/setup-gcloud@master
      with:
        project_id: ${{ secrets.GCP_PROJECT_ID }}
        service_account_key: ${{ secrets.GCP_SA_KEY }}
        export_default_credentials: true
    - name: Set GCP credentials
      run: gcloud info

GCP_PROJECT_ID 包含项目 ID,GCP_SA_KEY 包含从 Firebase 获取的服务帐号 .json 文件。

【讨论】:

    猜你喜欢
    • 2016-09-27
    • 2018-03-10
    • 1970-01-01
    • 1970-01-01
    • 2011-10-28
    • 1970-01-01
    • 2016-12-28
    • 2023-03-15
    • 1970-01-01
    相关资源
    最近更新 更多