> But I asked since I am not sure I completely understand how you want
> this implemented?

Neither do I. I just want to be naive and stupid and run the entire  
test suite with a set of parameters without having to remember or  
even know that a certain testcase does not support my parameter. How  
to do this, I don't know. I just like it.

--
Janus


Den 15/02/2008 kl. 10.21 skrev Martin Geisler:

> Janus Dam Nielsen <[EMAIL PROTECTED]> writes:
>
>>>> I think that having parametrized tests is good, however I just
>>>> wanted to point out that defining the parameters in the Runtime
>>>> class/object might not be suffienciently expressive to what we  
>>>> want.
>>>> We might would like a kind of grouping/system of tests so that  
>>>> it is
>>>> easy to run the tests without any particular knowledge of which
>>>> protocols support which parameters.
>>>>
>>>> Those tests for which a given set of parameters is invalid, the  
>>>> test
>>>> could return an undefined value, or the test could be elided from
>>>> the set of tests since it doesn't make any sense for these
>>>> parameters anyhow.
>>>
>>> The test suite is implemented using Trial, a Twisted tool which
>>> extends the standard Python unittest module with support for
>>> Deferreds. The Python unittest module is modelled after JUnit.
>>>
>>> In Trial there is support for marking a test as skipped, and that
>>> might be useful for what you are describing -- we could query the
>>> tests for their requirements and if they do not match the parameters
>>> of the current test, then we skip that test.
>>>
>>> Something like that could work, but I don't know if it is the best
>>> way... Have you looked at the Trial documentation to see how it  
>>> could
>>> be done? There is a tutorial here:
>>>
>>>   http://twistedmatrix.com/trac/browser/branches/trial-
>>> tutorial-2443/doc/core/howto/trial.xhtml?format=raw
>>>
>>> and the API documentation is here:
>>>
>>>   http://twistedmatrix.com/documents/current/api/
>>> twisted.trial.unittest.TestCase.html
>>>
>>> Trial is not so well documented as the rest of Twisted, so  
>>> looking at
>>> the source code has helped me a bit until I found the above  
>>> tutorial.
>>
>> I haven't looked at the code. I just wanted to make sure you didn't
>> shoot yourself in the foot unintentionally :)
>
> Yeah, thanks, that would be bad :-) so it is really nice to get some
> input in these design questions!
>
> But I asked since I am not sure I completely understand how you want
> this implemented?
>
> You want some set of parameters that are specified on the command line
> when one starts Trial, or should they be put in the unit tests  
> directly?
>
> The latter is easy, and we can already now generate many unit tests  
> with
> small differences such as the number of players. Adding this to
> test_active_runtime.py:
>
>     class Active5(ActiveRuntimeTest):
>         num_players = 5
>
>     class Active6(ActiveRuntimeTest):
>         num_players = 6
>
>     class Active7(ActiveRuntimeTest):
>         num_players = 7
>
> makes the Bracha broadcast test be run three more times, but with more
> players. It even works, I just tested! :-)
>
> That might be a good way to do things: code a TestCase with some unit
> tests, but be sure to make them generic in the sense that they can be
> run with any number of players (or threshold). Then create several
> subclasses like above. The classes can even be created at runtime:
>
> for n in range(3,6):
>     code = """
> class Active%d(ActiveRuntimeTest):
>     num_players = %d
> """ % (n, n)
>     exec code
>
> Trial never notices the difference and runs our tests as normal!
>
> This way we have lots of power over how the tests are generated: we  
> can
> easily test, say, all n<10, 10 randomly chosen n between 10 and 50,  
> and
> 5 random n's between 50 and 100. Something like that...
>
> -- 
> Martin Geisler
> _______________________________________________
> viff-devel mailing list (http://viff.dk/)
> viff-devel@viff.dk
> http://lists.viff.dk/listinfo.cgi/viff-devel-viff.dk

_______________________________________________
viff-devel mailing list (http://viff.dk/)
viff-devel@viff.dk
http://lists.viff.dk/listinfo.cgi/viff-devel-viff.dk

Reply via email to