如何在bin文件夹中测试主方法(Dart独立命令行应用程序)



我已经编写了一个简单的命令行Dart应用程序。该应用程序的功能位于bin目录中的app.dart文件中。

bin/app.dart

import 'dart:io';
void main(List<String> args) {
//(...)
}

我想用单元测试来测试主要方法。为此,我在测试目录中有一个文件app_test.dart

测试/app_test.dart

import 'package:test/test.dart';
import 'package:app/app.dart';
void main() {
test('main method runs through with exit code 0', () {
//I'd like to run the main method from bin/app.dart here
});
}

如何从test/app.art文件中引用bin/app.art中的main方法来运行测试的main方法?

解决方案显然是使用相对路径导入而不是包导入。所以我换了

import 'package:app/app.dart';

文件test/app_test.dart

import '../bin/app.dart' as app;

这使得能够用调用主方法

app.main();

来自测试文件。

我很难在官方文件中找到这种行为的参考,但这个Stackoverflow的答案拯救了我:如何在Dart中引用另一个文件?

最新更新