小编jsa*_*jsa的帖子

如何在 Github Actions 工作流程中缓存 Android NDK?

我想在我的 Github Actions 工作流中缓存 Android NDK。原因是我需要特定版本的 NDK 和 CMake,它们没有预装在 MacOS 运行器上。

我尝试使用以下工作流作业来实现此目的:

jobs:
  build:
    runs-on: macos-latest
    steps:

    - name: Cache NDK
      id: cache-primes
      uses: actions/cache@v1
      with:
        path: ${{ env.ANDROID_NDK_HOME }}
        key: ${{ runner.os }}-ndk-${{ hashFiles(env.ANDROID_NDK_HOME) }}

    - name: Install NDK
      run: echo "y" | $ANDROID_HOME/tools/bin/sdkmanager "ndk;21.0.6113669" "cmake;3.10.2.4988404"
Run Code Online (Sandbox Code Playgroud)

问题在于env上下文不包含ANDROID_NDK_HOME变量。所以这意味着build.steps.with.path评估为空。

如果我使用以下步骤进行调试,则存在常规环境变量并打印正确的路径:

jobs:
  build:
    steps:
    - name: Debug print ANDROID_NDK_HOME
      run: echo $ANDROID_NDK_HOME
Run Code Online (Sandbox Code Playgroud)

但是常规环境变量只能在shell脚本中使用,而build.steps.with据我所知不能使用。

github github-actions

9
推荐指数
2
解决办法
998
查看次数

Dart是否支持参数化的单元测试?

我想运行一个Dart测试,该测试使用一组输入和期望的输出重复进行,类似于JUnit。

我编写了以下测试以实现类似的行为,但问题是,如果所有测试输出的计算均不正确,则该事件只会失败一次:

import 'package:test/test.dart';

void main() {
  test('formatDay should format dates correctly', () async {
    var inputsToExpected = {
      DateTime(2018, 11, 01): "Thu 1",
      ...
      DateTime(2018, 11, 07): "Wed 7",
      DateTime(2018, 11, 30): "Fri 30",
    };

    // When
    var inputsToResults = inputsToExpected.map((input, expected) =>
        MapEntry(input, formatDay(input))
    );

    // Then
    inputsToExpected.forEach((input, expected) {
      expect(inputsToResults[input], equals(expected));
    });
  });
}
Run Code Online (Sandbox Code Playgroud)

我想要使​​用参数化测试的原因是,以便可以在测试中实现以下行为:

  • 只写一个测试
  • 测试n不同的输入/输出
  • n如果所有n测试均失败,则失败时间

dart

2
推荐指数
1
解决办法
292
查看次数

标签 统计

dart ×1

github ×1

github-actions ×1