Объясните смысл фразы в отчёте - failures are anticipated and checked for with assertions while errors are unanticipated.

В отчётах NUnit2Report.Console и в некоторых других есть фраза
failures are anticipated and checked for with assertions while errors are unanticipated.
Внутри (XSL) видно что Failures из nUnit XML-файлов игнорируются, учитываются только Errors. А у меня в результатах прогона тестов как раз есть и failures, и errors. Я обе эти категории отношу к “неуспешным”, и соответственно считаю процент успешности. А в отчёте NUnit2Report.Console failures не учитываются и попадают в “успешные”, и процент успешности отличается от моего.

Вот страница с примером фразы (одна из первых, попавшихся в поисковике):
http://nunit2report.sourceforge.net/NUnit-Frame-Report/index.htm

Кто-то может пояснить почему они так делают? Может быть это где-то описано и можно почитать?

Failure - это негативный результат проверки (ассерта), т.е. проверяешь - и оно не так, как в выражении.
Error - это неожиданная ошибка, например когда кликаешь на объект, которого не существует, или делишь на 0.

Пример

assertEquals(textFieldCustomer.getText(), “Customer1”)

если в поле стоит “Customer123”, то выскочит Failure.
а если самого textFieldCustomer не существует, будет Error (NullPointerException).

Спасибо, про причины Error и Failure мне понятно.
Если правильно переформулироватЬ, то вопрос - почему в файле NUnit-NoFrame.xsl (который используется в NUnit2Report.Console и в некоторых других) на 251й строке количество ошибок определяется так:

<xsl:variable name="errorCount" select="count(child::results/test-case[@executed='False'])"/>

(я смотрел отсюда:
NUnit2Report.Console/NUnit-NoFrame.xsl at master · jupaol/NUnit2Report.Console · GitHub ).

т.е. там error-ами считаются тест-кейсы, у которых executed=“False”, а у меня в Nunit XML файле получается такое:

<test-case name="MyNamespace.MySmokeTest" executed="True" result="Error" success="False" time="108.575" asserts="0">

т.е. у меня для result=“Error” пишет executed=“True”, и мои error-ы этот репорт не считает. Это просто некорректный/устаревший XSL, или это какая-то особая мудрость что error-ы не надо учитывать?


Пост из этой темы Преобразование XML отчетов Nunit в HTML - #26 от пользователя qaleader

меня тоже запутал, потому что там в XSL не учитываются fail-ы.
if test=“@result!=‘Error’ это Success, а if test=”@result!=‘Success’ это error. А fail-ы там не предусмотрены.

Вот поэтому и решил спросить, то ли это я на ошибки наткнулся, то ли есть какие-то общепринятые соглашения по fail/error, которых я не знаю

Может быть @dzhariy поможет? Он вроде тут по c# самый мастер.

Да нет там мудрости :slight_smile: Автор проекта свои задачи решил, код выложил для других и о проекте забыл.
Короче, специально баг оставлен был чтобы его кто-то потом пофиксил :slight_smile:

А вот в этом форке вроде-бы то место таки пофиксили: