Why is build_runner is succeeding with 0 outputs?

70 Views Asked by At

I have a simple Dart class that is using the package Dio in one of its methods. In the class's corresponding test file, I'm trying to mock Dio by placing @GenerateMocks([Dio]) above the main method. I then ran dart run build_runner build to generate the mocks for Dio. But no mocks were generated. The command line outputted the following:

[INFO] Generating build script completed, took 143ms
[INFO] Reading cached asset graph completed, took 53ms
[INFO] Checking for updates since last build completed, took 628ms
[INFO] Running build completed, took 3ms
[INFO] Caching finalized dependency graph completed, took 41ms
[INFO] Succeeded after 48ms with 0 outputs (0 actions)

Why is it not generating anything?

I tried updating my dependencies thinking that maybe this was the issue but it wasn't.

test: ^1.24.9
mockito: ^5.4.4
build_runner: ^2.4.8

I've run dart run build_runner build from the root of the project, and I get 0 outputs. I've also run it from the folder where the test is located and that errored out.

I've also tried generating mocks for a different class, but that had the exact same result.

Any ideas for what build_runner isn't generating anything?

2

There are 2 best solutions below

0
Thumb On BEST ANSWER

I found the issue. It was because I had my tests in the tests/ directory instead of the test/ directory (no "s"). The code generator won't find the tests if they aren't in the test/ directory. ‍♂️ Once I put them in the correct dir, the code generator generated the mocks properly.

3
Dhafin Rayhan On

In every file that has some code that needs to be generated, you have to include part 'the_file_name.g.dart'; after the imports section. For example, if the file name is foo.dart, then you have to add this:

part 'foo.g.dart';

This will tell build_runner to generate the missing part file.