问题
I inherited an assembly with MSTest, but these tests were run using nunit-console on the build machine (not sure how it worked). So I decided to sort it out and change them to proper NUnit tests, but now nunit-console (or gui) can't find any tests. They run just fine using ReSharper test runner though. Any idea what could be missing?
回答1:
Check:
- Is the class public?
- Does it have a public parameterless constructor (e.g. the default one if you don't specify any other constructors)
- Does it have the
[TestFixture]
attribute at the class level? - Is each test public?
- Does each test have the
[Test]
attribute? - Is each test parameterless?
I believe some versions of NUnit were able to find tests based on their names, e.g. TestFooBarBaz()
without the [Test]
attribute, but I don't know what the state of this is now - it could explain the discrepancy though.
回答2:
Thanks for help, everyone. Upgrading to the latest NUnit framework fixed the problem (all the obvious things you suggested were OK).
Frederik Gheysels, you can try that as well I guess.
回答3:
Are your test fixtures, classes and methods, public? They have to be for NUnit to find them.
来源:https://stackoverflow.com/questions/618292/nunit-doesnt-find-tests-in-assembly