Skip to content

When the tests directory does not exist, boost:install fails #45

@billypoke

Description

@billypoke

Laravel Package Version

1.0.1

Laravel Version

12.23.1

PHP Version

8.4.11

Database Driver & Version

No response

Description

We use nwidart/laravel-modules so all of our tests live under modules/{module_name}/Tests and we do not have a top level tests directory. The boost:install command errors with the following:

php artisan boost:install

 ██████╗   ██████╗   ██████╗  ███████╗ ████████╗
 ██╔══██╗ ██╔═══██╗ ██╔═══██╗ ██╔════╝ ╚══██╔══╝
 ██████╔╝ ██║   ██║ ██║   ██║ ███████╗    ██║
 ██╔══██╗ ██║   ██║ ██║   ██║ ╚════██║    ██║
 ██████╔╝ ╚██████╔╝ ╚██████╔╝ ███████║    ██║
 ╚═════╝   ╚═════╝   ╚═════╝  ╚══════╝    ╚═╝

  ✦ Laravel Boost :: Install :: We Must Ship ✦ 

 Let's give propper a Boost


   Symfony\Component\Finder\Exception\DirectoryNotFoundException 

  The "{redacted_project_dir}}/tests" directory does not exist.

  at vendor/symfony/finder/Finder.php:646
    642▕             } elseif ($glob = glob($dir, (\defined('GLOB_BRACE') ? \GLOB_BRACE : 0) | \GLOB_ONLYDIR | \GLOB_NOSORT)) {
    643▕                 sort($glob);
    644▕                 $resolvedDirs[] = array_map($this->normalizeDir(...), $glob);
    645▕             } else {
  ➜ 646▕                 throw new DirectoryNotFoundException(\sprintf('The "%s" directory does not exist.', $dir));
    647▕             }
    648▕         }
    649▕ 
    650▕         $this->dirs = array_merge($this->dirs, ...$resolvedDirs);

      +15 vendor frames 

  16  artisan:35
      Illuminate\Foundation\Console\Kernel::handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))

Obviously we can re-add the folder with a .gitkeep but we do have a substantial test suite, just not in the default ___location. Can there be an option to provide a glob pattern for test directories so that the generated guidelines still enforce tests?

Steps To Reproduce

To reproduce, run boost:install when there is no tests directory present in the top level of the laravel project.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions