Используя ReSharper 8.2 на локальном компьютере и NUnit 2.6.3 на сервере сборки, был обнаружен некоторый тест, который прошел в ReSharper и не удалось выполнить в NUnit. Установлены локальные и точные результаты NUnit, поэтому это не разница между компьютерами. Двое из моих коллег провели те же тесты и имели одинаковые результаты, поэтому мне не кажется что-то испортить мой компьютер.Единичный тест ReSharper и NUnit дают разные результаты
Упрощенная версия тестов:
[Test]
public void Test_UrlQueryString()
{
var urlInput = "http://www.domain.com/page-with-querystring?url=https://www.domain2.com/page%3Fp%3DPEPE";
var uri = new Uri(urlInput);
Assert.AreEqual(urlInput, uri.ToString());
}
[Test]
public void Test_Dot()
{
var urlInput = "http://www.domain.com/page-with-dot.?p=google";
var uri = new Uri(urlInput);
Assert.AreEqual(urlInput, uri.ToString());
}
выход ReSharper все зеленые. Выход из NUnit:
Runtime Environment -
OS Version: Microsoft Windows NT 6.1.7601 Service Pack 1
CLR Version: 4.0.30319.18444 (Net 4.5)
ProcessModel: Default DomainUsage: Single
Execution Runtime: net-4.5
...................F.F.........
Tests run: 29, Errors: 0, Failures: 2, Inconclusive: 0, Time: 0.576769973208475 seconds
Not run: 0, Invalid: 0, Ignored: 0, Skipped: 0
Errors and Failures:
1) Test Failure : Test.OrganicTest.Test_Dot
Expected string length 45 but was 44. Strings differ at index 35.
Expected: "http://www.domain.com/page-with-dot.?p=google"
But was: "http://www.domain.com/page-with-dot?p=google"
----------------------------------------------^
2) Test Failure : Test.OrganicTest.Test_UrlQueryString
Expected string length 87 but was 83. Strings differ at index 76.
Expected: "...-with-querystring?url=https://www.domain2.com/page%3Fp%3DPEPE"
But was: "...-with-querystring?url=https://www.domain2.com/page?p=PEPE"
----------------------------------------------------------------^
ReSharper, похоже, использует ту же версию NUnit (встроенный NUnit 2.6.3)
ли кто-нибудь знает, что, как исправить это? Это ошибка в ReSharper или NUnit?
Это точно правильный ответ, но он отсутствует ключевой бит информации - .net 4.5 есть «режим совместимости» (как описано в [этом блоге] (HTTP: // блогам .msdn.com/b/dotnet/archive/2012/10/17/net-framework-4-5-off-to-a-great-start.aspx), который дает поведение .net 4.0 при запуске в .net 4.0. Вам нужно будет установить последнюю версию ReSharper 8.2.3, чтобы получить версию, которая работает правильно - нет режима quirks.См. [Эта проблема с YouTrack для ошибки ReSharper] (https://youtrack.jetbrains.com/issue/RSRP-412080) – citizenmatt
Да, похоже, в Resharper появилась ошибка. – Riga