On 11 June 2013 14:42, Steven Degutis <sbdegu...@gmail.com> wrote:
> Timothy, Brandon, Cedric, et al.:
>
> Separating out the Discoverer from the Runner in the SPEC is a bad idea.
>
> The main benefit mentioned so far for such a separation is so we can have
> different definitions of what constitutes a test. For example,
> test.generative can generate multiple tests from just one block of code.

At least in this thread, the key benefit -- IMO -- was mentioned by
Brandon (a few e-mails upthread from the one I'm replying to):

On 11 June 2013 01:53, Brandon Bloom <brandon.d.bl...@gmail.com> wrote:
> I
> might want to just ask "What tests do I have?" without actually running
> anyway. I may also want a different Executor, like a distributed/parallel
> executor, while preserving the discovery logic.

So, even if the discovery logic was completely fixed by the spec,
there's still value in having it separated from the runner.

(For example with clojure.test it's trivial to discover what tests are
available without running any -- (->> 'test.ns ns-interns vals (filter
(comp :test meta))). I imagine it'll probably be the case with any
other framework, but if this effort is specifically about decoupling,
why have every separate runner reimplement the same discovery logic?)

Cheers,
Michał


>
> But this creates the same incompatibility problem that we already have
> between existing test suites. Instead, if we have a single definition of a
> test, every definer is compatible with another.
>
> And the current definition is already flexible enough to let you generate
> multiple tests based on one block of code, like test.generative does.
>
>
> On Tue, Jun 11, 2013 at 1:57 AM, Cedric Greevey <cgree...@gmail.com> wrote:
>>
>> You pass not the Discoverer's results to the Runner, but the Discoverer
>> itself, which the Runner then invokes at need, possibly more than once.
>>
>>
>> On Tue, Jun 11, 2013 at 1:35 AM, Steven Degutis <sbdegu...@gmail.com>
>> wrote:
>>>
>>> Originally we had Runner split into Discoverer and Runner, but I had to
>>> combine them both in Runner again so that we can have an autorunner.
>>>
>>> Imagine that you've started your autorunner at the command line, and you
>>> create a new test in your existing file and save it. The discoverer has
>>> already done his role and found all existing tests and passed them to the
>>> runner, so the runner can't see your new test, he only re-runs the tests
>>> that existed when he first started.
>>>
>>> That's why I combined them again. So that he could re-discover all the
>>> tests "matching some criteria" and run them.
>>>
>>> So how do you solve this problem while separating Discoverer from Runner?
>>>
>>>
>>> On Mon, Jun 10, 2013 at 6:53 PM, Brandon Bloom
>>> <brandon.d.bl...@gmail.com> wrote:
>>>>
>>>> There are currently 4 roles defined: Definer, Asserter, Runner, and
>>>> Reporter.
>>>>
>>>> It looks like the "Runner" does finding, filtering, and execution. I
>>>> think you could further break the Runner down into Discoverer and Executor.
>>>> I might want to just ask "What tests do I have?" without actually running
>>>> anyway. I may also want a different Executor, like a distributed/parallel
>>>> executor, while preserving the discovery logic.
>>>>
>>>> On Saturday, June 8, 2013 11:14:42 AM UTC-4, Steven Degutis wrote:
>>>>>
>>>>> Test2 is a new testing lib for Clojure, where the power is its
>>>>> simplicity, extensibility, and a SPEC much like Ring's.
>>>>>
>>>>> Github: https://github.com/evanescence/test2
>>>>>
>>>>> Some background: It came out of discussions with the smart folks in
>>>>> #clojure, who were frustrated with the inflexibility of existing libs, and
>>>>> intended this to be the spiritual successor to clojure.test. We wanted
>>>>> something that was still simple like clojure.test, but could be extended
>>>>> externally much more easily in case you wanted features found in
>>>>> clojure.test, Midje, Speclj, or Expectations, or whatever else.
>>>>>
>>>>> This is a pre-ANN because it's more of a call for extensions. I've
>>>>> written one last night, test2-autorunner, which took about an hour. This
>>>>> should give some idea of how easy it is and how well-designed the SPEC was
>>>>> by the smart folks of #clojure. There are some ideas at the bottom of the
>>>>> wiki, but of course any extensions are encouraged.
>>>>>
>>>>> -Steven
>>>>
>>>> --
>>>> --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "Clojure" group.
>>>> To post to this group, send email to clojure@googlegroups.com
>>>> Note that posts from new members are moderated - please be patient with
>>>> your first post.
>>>> To unsubscribe from this group, send email to
>>>> clojure+unsubscr...@googlegroups.com
>>>> For more options, visit this group at
>>>> http://groups.google.com/group/clojure?hl=en
>>>> ---
>>>> You received this message because you are subscribed to the Google
>>>> Groups "Clojure" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to clojure+unsubscr...@googlegroups.com.
>>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>>
>>>>
>>>
>>>
>>> --
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "Clojure" group.
>>> To post to this group, send email to clojure@googlegroups.com
>>> Note that posts from new members are moderated - please be patient with
>>> your first post.
>>> To unsubscribe from this group, send email to
>>> clojure+unsubscr...@googlegroups.com
>>> For more options, visit this group at
>>> http://groups.google.com/group/clojure?hl=en
>>> ---
>>> You received this message because you are subscribed to the Google Groups
>>> "Clojure" group.
>>> To unsubscribe from this group and stop receiving emails from it, send an
>>> email to clojure+unsubscr...@googlegroups.com.
>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>
>>>
>>
>>
>> --
>> --
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clojure@googlegroups.com
>> Note that posts from new members are moderated - please be patient with
>> your first post.
>> To unsubscribe from this group, send email to
>> clojure+unsubscr...@googlegroups.com
>> For more options, visit this group at
>> http://groups.google.com/group/clojure?hl=en
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "Clojure" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to clojure+unsubscr...@googlegroups.com.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>>
>
>
> --
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with your
> first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to