在AOT /发布或配置文件模式下运行颤振/飞镖测试?

时间:2019-07-26 08:13:47

标签: unit-testing testing flutter dart

如果我正确理解默认情况下,flutter test将在Dart VM上以JIT运行,而发行模式使用AOT编译器来编写本机代码。 我(认为)只有在AOT模式(发行版和配置文件)下才会发生崩溃,当我可以通过在AOT /配置文件模式下运行代码来隔离它时,调试和重现它会更容易。

那么我如何在AOT模式下运行测试(或至少代码片段)? (我不太在意它是否在实际的iOS或Android设备上运行,还是在开发机器或模拟器上执行。

(我发现了an article which seems to describe the compilation process,但确实参与其中。有没有更简单的测试方法?)

1 个答案:

答案 0 :(得分:0)

我找到了一个相当简单的解决方案documented on the dart website。从Dart 2.3开始,SDK捆绑了dart2aotdartaotruntime。这样可以简单执行,并且能够重现崩溃。

Herbys-MacBook-Pro-2017:migrate$ dart2aot migrate_aot_test.dart migrate_aot_test.dart.aot
Herbys-MacBook-Pro-2017:migrate$ dartaotruntime migrate_aot_test.dart.aot
[...]

===== CRASH =====
si_signo=Segmentation fault: 11(11), si_code=1, si_addr=0x1061000410f
Abort trap: 6
Herbys-MacBook-Pro-2017:migrate$