current property

TestEnvironment? current

Returns current test environment.

Example

import 'package:os/os.dart';

void doSomething() {
  TestEnvironment.current?.addTearDown(() async {
    // ...
  });
}

You don't need any changes in test files:

import 'package:test/test.dart';

void main() {
  test('doSomething()', () {
    doSomething();
  });
}

Implementation

static TestEnvironment? get current {
  final zone = Zone.current;
  final impl = zone[#test.invoker] ?? zone[#test.declarer];
  if (impl == null) {
    return null;
  }
  final existingResult = _expando[impl];
  if (existingResult != null) {
    return existingResult;
  }
  final result = _TestEnvironment(impl);
  _expando[impl] = result;
  return result;
}