.NET test framework with parameterized unit testin

2019-06-22 15:19发布

问题:

Parameterized Unit Testing is great when you have X unit test * Y configurations.

I have 3 unit tests, and each must run in 5 particular situations.
I use xUnit.net's Theory/PropertyData feature, it works well.

PROBLEM: In the Test Runner UI, there is one green/red symbol per unit test, which means 3.
It makes it difficult to evaluate progress: the symbol is red until ALL configurations work perfectly.
I want 15 symbols, one per unit test * configuration, to know what particular combination is going wrong.

xunit.net has yet to implement the feature to show 15 symbols.

I am willing to switch to another test framework just to get this feature.
QUESTION: Does any .NET test framework have this feature?
Any kind of reporting is fine (GUI, HTML, etc)

回答1:

You can use TestCaseAttribute or TestCaseSourceAttribute of NUnit to specify different parameters for test. Each test case will be shown as separate test in test runner.



回答2:

NUnit console will show you which test case failed. Example:

[TestCase("ABK")]
[TestCase("bgba")]
[TestCase("CBVS")]
[TestCase("DSBH")]
[TestCase("E")]
[TestCase("FJMC")]
[TestCase("HBTV2")]
[TestCase("JFFC1")]
[TestCase("K")]
[TestCase("LBHG")]
[TestCase("MJCM")]
[TestCase("PHJL")]
[TestCase("R")]
[TestCase("TDPP")]
[TestCase("UGV")]
[TestCase("VXHC")]
[TestCase("YFD")]
public void Given_a_main_supplier_categorie_then_it_should_return_a_collection_of_RM_categories(string supplierCategory)
{
     // test code here
     // ....           
}

See the attached screenshot. Also, Resharper has great support for Unit Testing.



回答3:

Pretty sure TeamCity renders them from xUnit.net individually. I reckon the TeamBuild tooling should pick them up too as they go into the report data.

The xUnit.net GUI and console runners identify the arguments of failing cases.

Any particular reason why you feel its of benefit to show the passing individual cases? (i.e. are you trying to get a readable report?)