First, for most databases more tests pass than fail, so use [Category]
to mark tests that should pass would result in more methods being
attributed than marking those that fail (which is why I suggested
marking failing tests).
As for tests failing on some vendors but not others, we just need to use
multiple categories with separate strings:
[Test]
[Category("NotSqlite")]
[Category("NotSqlServer")]
public void TestSomething() {...}
- Jon
On Wed, 2009-05-06 at 08:51 +0200, Giacomo Tesio wrote:
> Just another thought:
> We could also use [Category] to mark "ShouldPass" tests.
> Then all regressions in the ShouldPass category would be visible.
>
> BTW, since tests are shared among vendors, some "ShouldPass" for a
> vendor but not yet for another...
>
> How to handle this?
>
>
> Giacomo
>
>
>
> On Wed, May 6, 2009 at 8:44 AM, Giacomo Tesio <[email protected]>
> wrote:
>
> [3] write a "simple" software monitoring checkins and running
> all tests at each checkin. When it notes some regression, it
> would mail all the developers a notification.
>
> BTW I've to note that
> 1) Some test are wrong coded: they do not really test what
> they should (noticed on some of the 101 modified tests)
> passing even if they should not (some time using workaround
> against missing DbLinq feature... but than why unit testing?).
> 2) Some test don't passes just becouse the underlying db
> contains different data set (and data structure).
>
>
> Even if we could not fix all the DbLinq's errors we SHOULD fix
> the unit tests ones.
> Those error are the real noise we should fix.
>
> Moreover we really need a distributable testing
> infrastructure, urgently.
> I simply can not run all tests, since I've not all the
> databases.
>
>
> Giacomo
>
>
>
>
>
> On Wed, May 6, 2009 at 6:36 AM, Jonathan Pryor
> <[email protected]> wrote:
>
> I think we have a fundamental problem with our unit
> tests: most of them don't have 100% pass rates. This
> is a problem because you can introduce errors without
> realizing it, because the NUnit tree doesn't look
> significantly different (lots of green and red before,
> vs. lots of green and red later).
>
> For example, when I write the unit test page
> (http://groups.google.com/group/dblinq/web/unit-tests)
> I wrote that SQL Server had 425 tests run with 70
> failures. As I write this 432 tests are run (yay)
> with 190 failures (boo!) -- more than double the error
> count compared to March 23.
>
> I don't know what caused the increased failures.
> Currently, I don't care.
>
> What I do currently care about is preventing such
> regressions in the future, and the way to do that is
> by getting our unit tests 100% green (so that
> regressions and errors are actually visible, not
> hidden in a sea of existing errors).
>
> I can think of two[0] solutions to this, and I'm
> welcome to any additional suggestions.
>
> 1. Use #if's in the test code to remove failing tests.
>
> 2. Use [Category] attributes on the tests to declare
> which tests shouldn't be executed. The Categories tab
> within NUnit allows you to specify which categories
> are executed.
>
> The problem with (1) is a gigantic increase in code
> complexity, as each vendor will have a different set
> of failing unit tests, so we'd potentially need checks
> for every vendor on each method. This is incredibly
> bad.
>
> (2) would at least avoid the "line noise" implied by
> #if, though it could also get very "busy" (with
> upwards of 7 [Category] attributes on a given method).
>
> Thoughts? Alternatives?
>
> Thanks,
> - Jon
>
> [0] OK, a third solution would be to actually fix all
> the errors so that everything is green without using
> (1) or (2) above, but I don't think that this is
> practical in the short term.
>
>
>
>
>
>
>
>
>
> >
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"DbLinq" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/dblinq?hl=en
-~----------~----~----~----~------~----~------~--~---