我在 .NET 6 中有一個專案,其中包含一個簡單的控制臺應用程式,我想對其進行測驗。我希望用 xUnit 測驗創建第二個類,但它們沒有運行。
dotnet 測驗僅列印
Copyright (c) Microsoft Corporation. All rights reserved.
Starting test execution, please wait...
A total of 1 test files matched the specified pattern.
Additionally, path to test adapters can be specified using /TestAdapterPath command. Example /TestAdapterPath:<pathToCustomAdapters>.
測驗.cs
using Xunit;
namespace b;
public class Tests
{
[Fact]
public void One()
{
Assert.True(Parser.Check("{}{}{}"));
}
}
程式.cs
using b;
do
{
string line = Console.ReadLine();
Console.WriteLine(Parser.Check(line));
}while(true);
決議器.cs
namespace b;
public class Parser
{
static Stack<char> s = new Stack<char>();
public Parser()
{ }
static public bool Check(string stringToCheck)
{
int i = 0;
do
{
if(i < stringToCheck.Length - 1)
{
do
{
s.Push(stringToCheck[i ]);
} while (stringToCheck[i] != ')' && stringToCheck[i] != '}' && stringToCheck[i] != ']');
} else
s.Push(stringToCheck[i]);
if (stringToCheck[i] == ')')
{
if (s.Peek() == '(')
s.Pop();
else
return false;
} else if (stringToCheck[i] == '}')
{
if (s.Peek() == '{')
s.Pop();
else
return false;
} else if (stringToCheck[i] == ']')
{
if (s.Peek() == '[')
s.Pop();
else
return false;
}
i ;
} while (i < stringToCheck.Length);
return true;
}
}
我是否需要構建整個解決方案并創建兩個單獨的專案 - 一個用于當前應用程式,第二個用于測驗?有沒有更簡單的方法?
uj5u.com熱心網友回復:
將測驗專案與生產代碼分開是有令人信服的理由的。
- 由于您的所有測驗都與您的生產代碼在同一個專案中,您必須將測驗與您的成品一起交付。
- 由于您必須將測驗與成品一起發布,因此它的依賴項(xUnit 運行器、VS 測驗 SDK 等)也將自動包含在您的部署中。
- 在某些時候,您或維護專案的其他人可能無法確定生產代碼的結束位置和測驗代碼的開始位置。結果是,如果您不小心,您最終可能會在生產中呼叫一些不合標準的測驗代碼或模擬。
- “他們不跑”。這是因為您正在構建一個可執行檔案,而 xUnit 期望測驗位于類別庫 (DLL) 中。此外,包含測驗的類別庫必須針對可執行框架(而不是像 .NET Standard 這樣的可移植框架)。
將測驗分離到另一個專案背后的想法將幫助您避免所有這些問題,使您的部署規模更小,并使您的專案隨著時間的推移更易于維護。所以是的,您應該創建一個包含 2 個獨立專案的解決方案。
我什至建議您更進一步,并在解決方案的根目錄中添加一個頂級/src和/test目錄,以便稍后如果您有更多程式集,則有一個邏輯位置可以放置它們并為每個環境共享通用配置。
uj5u.com熱心網友回復:
從表面上看,您不僅有一個班級,而且有兩個班級:Program.cs和Parser.cs
簡單快速的解決方案并不總是最好的。我建議創建另一個測驗專案(尤其是使用像 Visual Studio 這樣可以幫助您生成測驗專案的 IDE)并在其中添加一個或多個測驗類。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/481114.html
上一篇:如何使用bash腳本向dotnetc#程式輸入命令列引數?
下一篇:讀取整數陣列,并在輸入字串時停止
