tools icon indicating copy to clipboard operation
tools copied to clipboard

[test_reflective_loader] Pass test locations to `pkg:test` to improve IDE navigation

Open DanTup opened this issue 9 months ago • 1 comments

This updates pkg:test_reflective_loader to the latest version of pkg:test and passes the locations of tests declarations through to test() calls.

These locations are then used by pkg:test in the JSON reporter so that IDEs can navigate to the correct locations of these tests (rather than always to the defineReflectiveTests() call, because the real test declarations are not in the call stack at the point that test() is called).

Fixes https://github.com/dart-lang/tools/issues/2081 Fixes https://github.com/Dart-Code/Dart-Code/issues/5480

https://github.com/user-attachments/assets/beef0977-0338-4b86-9850-bbc895aeb09a

DanTup avatar May 13 '25 10:05 DanTup

Making this as WIP for now because there was a bug in the pkg:test changes. I'll come back to this after https://github.com/dart-lang/test/pull/2499 is merged and released.

DanTup avatar May 19 '25 08:05 DanTup

A new version of pkg:test was published (1.26.1) so I've updated this. This is now good to go again.

@scheglov are you the right person to review this (you were auto-assigned)?

DanTup avatar May 21 '25 09:05 DanTup

Package publishing

Package Version Status Publish tag (post-merge)
package:bazel_worker 1.1.3 already published at pub.dev
package:benchmark_harness 2.4.0-wip WIP (no publish necessary)
package:boolean_selector 2.1.2 already published at pub.dev
package:browser_launcher 1.1.3 already published at pub.dev
package:cli_config 0.2.1-wip WIP (no publish necessary)
package:cli_util 0.4.2 already published at pub.dev
package:clock 1.1.3-wip WIP (no publish necessary)
package:code_builder 4.10.2-wip WIP (no publish necessary)
package:coverage 1.13.1 already published at pub.dev
package:csslib 1.0.2 already published at pub.dev
package:extension_discovery 2.1.0 already published at pub.dev
package:file 7.0.2-wip WIP (no publish necessary)
package:file_testing 3.1.0-wip WIP (no publish necessary)
package:glob 2.1.3 already published at pub.dev
package:graphs 2.3.3-wip WIP (no publish necessary)
package:html 0.15.6 already published at pub.dev
package:io 1.1.0-wip WIP (no publish necessary)
package:json_rpc_2 4.0.0 already published at pub.dev
package:markdown 7.3.1-wip WIP (no publish necessary)
package:mime 2.0.0 already published at pub.dev
package:oauth2 2.0.4-wip WIP (no publish necessary)
package:package_config 2.3.0-wip WIP (no publish necessary)
package:pool 1.5.2-wip WIP (no publish necessary)
package:process 5.0.4 already published at pub.dev
package:pub_semver 2.2.0 already published at pub.dev
package:pubspec_parse 1.5.0 already published at pub.dev
package:source_map_stack_trace 2.1.3-wip WIP (no publish necessary)
package:source_maps 0.10.14-wip WIP (no publish necessary)
package:source_span 1.10.1 already published at pub.dev
package:sse 4.1.8 already published at pub.dev
package:stack_trace 1.12.1 already published at pub.dev
package:stream_channel 2.1.4 already published at pub.dev
package:stream_transform 2.1.2-wip WIP (no publish necessary)
package:string_scanner 1.4.1 already published at pub.dev
package:term_glyph 1.2.3-wip WIP (no publish necessary)
package:test_reflective_loader 0.3.0 ready to publish test_reflective_loader-v0.3.0
package:timing 1.0.2 already published at pub.dev
package:unified_analytics 8.0.1 already published at pub.dev
package:watcher 1.1.1 already published at pub.dev
package:yaml 3.1.3 already published at pub.dev
package:yaml_edit 2.2.2 already published at pub.dev

Documentation at https://github.com/dart-lang/ecosystem/wiki/Publishing-automation.

github-actions[bot] avatar May 21 '25 18:05 github-actions[bot]

PR Health

Breaking changes :heavy_check_mark:
Package Change Current Version New Version Needed Version Looking good?
test_reflective_loader Non-Breaking 0.2.3 0.3.0 0.2.4 :heavy_check_mark:
Changelog Entry :heavy_check_mark:
Package Changed Files

Changes to files need to be accounted for in their respective changelogs.

Coverage :heavy_check_mark:
File Coverage
pkgs/test_reflective_loader/lib/test_reflective_loader.dart :green_heart: 84 % :arrow_up: 1 %

This check for test coverage is informational (issues shown here will not fail the PR).

API leaks :heavy_check_mark:

The following packages contain symbols visible in the public API, but not exported by the library. Export these symbols or remove them from your publicly visible API.

Package Leaked API symbols
License Headers :heavy_check_mark:
// Copyright (c) 2025, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
Files
no missing headers

All source files should start with a license header.

Unrelated files missing license headers
Files
pkgs/bazel_worker/benchmark/benchmark.dart
pkgs/bazel_worker/example/client.dart
pkgs/bazel_worker/example/worker.dart
pkgs/benchmark_harness/integration_test/perf_benchmark_test.dart
pkgs/boolean_selector/example/example.dart
pkgs/clock/lib/clock.dart
pkgs/clock/lib/src/clock.dart
pkgs/clock/lib/src/default.dart
pkgs/clock/lib/src/stopwatch.dart
pkgs/clock/lib/src/utils.dart
pkgs/clock/test/clock_test.dart
pkgs/clock/test/default_test.dart
pkgs/clock/test/stopwatch_test.dart
pkgs/clock/test/utils.dart
pkgs/coverage/lib/src/coverage_options.dart
pkgs/coverage/test/collect_coverage_config_test.dart
pkgs/coverage/test/config_file_locator_test.dart
pkgs/html/example/main.dart
pkgs/html/lib/dom.dart
pkgs/html/lib/dom_parsing.dart
pkgs/html/lib/html_escape.dart
pkgs/html/lib/parser.dart
pkgs/html/lib/src/constants.dart
pkgs/html/lib/src/encoding_parser.dart
pkgs/html/lib/src/html_input_stream.dart
pkgs/html/lib/src/list_proxy.dart
pkgs/html/lib/src/query_selector.dart
pkgs/html/lib/src/token.dart
pkgs/html/lib/src/tokenizer.dart
pkgs/html/lib/src/treebuilder.dart
pkgs/html/lib/src/utils.dart
pkgs/html/test/dom_test.dart
pkgs/html/test/parser_feature_test.dart
pkgs/html/test/parser_test.dart
pkgs/html/test/query_selector_test.dart
pkgs/html/test/selectors/level1_baseline_test.dart
pkgs/html/test/selectors/level1_lib.dart
pkgs/html/test/selectors/selectors.dart
pkgs/html/test/support.dart
pkgs/html/test/tokenizer_test.dart
pkgs/html/test/trie_test.dart
pkgs/html/tool/generate_trie.dart
pkgs/pubspec_parse/test/git_uri_test.dart
pkgs/stack_trace/example/example.dart
pkgs/watcher/test/custom_watcher_factory_test.dart
pkgs/yaml_edit/example/example.dart

github-actions[bot] avatar May 21 '25 18:05 github-actions[bot]

@scheglov thanks!

The failure was because the new pkg:test requires a newer Dart, so I've also now bumped the requirement from Dart 3.1 to Dart 3.2 in the pubspec (and the bot setup script).

I think someone will need to re-approve the bots to run with this change.

DanTup avatar May 21 '25 18:05 DanTup

The failure was because the new pkg:test requires a newer Dart, so I've also now bumped the requirement from Dart 3.1 to Dart 3.2 in the pubspec (and the bot setup script).

I think someone will need to re-approve the bots to run with this change.

lgtm; we can also bump to even more recent versions, up to and including the current stable if useful.

devoncarew avatar May 21 '25 18:05 devoncarew

Looks like the message from the first one wasn't the whole picture, it said:

Because test_reflective_loader depends on test >=1.25.6 which requires SDK version >=3.2.0 <4.0.0, version solving failed.

And after asking for 3.2 it changed to:

Because test_reflective_loader depends on test >=1.25.8 which requires SDK version >=3.4.0 <4.0.0, version solving failed.

But neither of these are actually accurate, because we're requiring test 1.26.1, and it turns out that needs 3.5.

So, I've bumped it to 3.5 (3.8 would probably work, but if there's no need, it's probably nice to be compatible with more versions in case some haven't upgraded yet). Hopefully it'll work this time - someone will need to approve the bots again.

Thanks!

DanTup avatar May 21 '25 18:05 DanTup

Removed the unnecessary import, should be good now 🙃

(someone will have to re-approve the bots - thanks!)

DanTup avatar May 22 '25 09:05 DanTup

@scheglov @devoncarew this landed in the SDK and I've confirmed it's all working as expected :)

I don't know how many other projects use test_reflective_loader so publishing this is not a priority, but I don't know if not publishing it will cause any confusion (because it has a version in the changelog and the bot above marked it as ready-to-publish). I'll leave that to you to decide, since I'm not so familiar with the process.

DanTup avatar May 27 '25 16:05 DanTup