The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use MooseX::Declare;

role t::RoleTest {
    use Test::Sweet;

    test from_role {
        pass 'tests can come from roles';
    }
}

class t::Basic with t::RoleTest {
    use Test::Sweet;

    test does_it_work {
        pass 'it works';
        return (1,2,3) if wantarray;
        return 42;
    }

    test method_call {
        my $result = $self->does_it_work;
        is $result, 42, 'got return value';

        my @result = $self->does_it_work;
        is_deeply \@result, [1,2,3], 'wantarray is preserved correctly';
    }

    test calling_a_test_from_a_role { $self->from_role }

    # from_role test (from t::RoleTest) runs here

}