Skip to content

Test::Stream UI discussion #76

@exodist

Description

@exodist

This ticket is for discussion of the Test::Stream UI.

Right now Test::Stream is a loader. -Foo means load a bundle named Foo. Foo without a dash means load a plugin named Foo. :Foo means load a bundle from t/lib. Lowercase args are reserved by the loader. There are no defaults.

There were a couple reasons/goals in doing it this way:

  1. I knew some people would not like the toolset I do (the V1 bundle) and I wanted it to be clear to all that ot was not the only way, and that they were not forced to use it. Before the current UI Test::Stream was what the V1 bundle is now.

  2. The loader is inheritable if you want a custom test tool with defaults, or behavior specified for the lowercase options. this is something particularly useful for companies with complex testing needs.

  3. The plugin/bundle system will hopefully prevent the kind of problems we hae with Test::Class which both adds behavior, and forces you to use Test::More a specific way.

  4. bundles basically boil down to a list of arguments to the Test::Stream loader. This adds consistency.

I realized that it would not be hard to make it so that plugins and bundles could work without using the loader, that is make it work if they are used directly. I also realized some people would not like to use a loader. As a result I took some time and did it. As a result the loader is optional from a user perspective. However the loader is not truly optional since bundles still use it under the hood, users just don't see it.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions