Hi all,

because I’m a bit overloaded at the moment, please don’t misinterpret following 
as general reject or blame or something like that.

I waited with the answer until I had time to create an own sandbox and shoot a 
bit around.
Seems now I have some bullet holes :D

Am 10.02.2014 um 00:18 schrieb Tim Bunce <tim.bu...@pobox.com>:

> As you probably know, I've been hacking on a rough DBI::Test prototype
> for a while. My primary goal has been to discover and explore the issues.
> Trying to write only the minimum amount of code to do so.
> 
> It's now at the stage where there's something basic working for
> all the key aspects...
> 
>    Test variant generation
>    The interface between the generated test script and the input test module
>    Integration with Test::Database
>    Fixture provider abstraction
>    Fixture abstraction, including auto-teardown on DESTROY
>    Support for unique table names so parallel testing works
> 
> Please take a moment to read this README file:
> 
>    https://github.com/perl5-dbi/DBI-Test/blob/master/sandbox/tim/README.pod
> 
> Then, ideally, checkout the repo and play with it.
> 
> Then, please, give me feedback!
> 
> What's good?
> What's bad?
> What can be done better?
> What's missing?
> What's are the priorities now?

First: I like the general approach of separating of concerns. That’ll allows to 
reuse the idea of flexible environments.
I tried it for my recent problem child MooX::Cmd (and extend some tests to 
MooX::Options cooperation).
In principle, the "MooX::Options cooperation“ test case should be installed to 
be reused from Vincent when hacking on MX::O ...

So far so good - see 
https://github.com/perl5-dbi/DBI-Test/tree/master/sandbox/jens how I tried to 
reach those (more or less) simple goals.

My current sense of the entire stuff is:

1) I now have a rough intention how all must have felt when seeing my first 
approach
2) There is one complexity exchanged for another one
   ==> neither are good
3) To much implicit code - for having a test framework, I would prefer explicit 
code,
   especially mix between coderefs (providers) and values (test 
cases/templates).
   ==> Maybe having a Class::Tiny based API would improve (lazy attributes ftw 
^^)
4) Probably a sandbox issue: Test::Database requires DBI -> Chicken Egg Problem
5) Providers framework need also support for variations, combinations and
   permutations - mixing gofer+pureperl works only for small lists (add S::S 
vs. Nano,
   Gofer vs. DBD::Multiplex vs. DBD::Proxy ... (we don’t want to test Gofer via 
Multiplex,
   do we?) ).
6) I didn’t find the time to rewrite „write_test_file“ - but I think a nice 
template
   as hacked in 
https://github.com/i-scream/libstatgrab/blob/master/tests/testlib/mk_run_tests.pl
   would allow more flexibility.

I hope that doesn’t clean up any existing motivation and I really recognize it 
as a playground.

Cheers
-- 
Jens Rehsack
rehs...@gmail.com





Reply via email to