![](/img/trans.png)
[英]How to run some tests only in azure devops CI env but not locally
[英]Some of unit tests failed on Azure but passed locally
發生了什么。 我們有一個生成 PDF 文檔的 in out 項目服務。 所以,我們有測試來檢查兩個文檔是否相等。 第一個文檔,稱為“預期”,我們已經在本地作為基線文件夾中的模板文檔。 第二個文檔,稱為“實際”或“結果”,由我們的服務自動生成。 這里的代碼:
[TestMethod]
public void PdfExportProviderTest()
{
var document = GetDocument("Pdf document");
IExportProvider pdfExportProvider = new PDFExportProvider();
var stream = pdfExportProvider.Export(document, DisplayUnits.Imperial);
var resultPdf = Encoding.UTF8.GetString(stream.ToArray());
var expectedPdf = GetPdfByName("ExpectedDocument.pdf");
Assert.IsTrue(Clear(expectedPdf).Equals(Clear(resultPdf), StringComparison.InvariantCulture));
}
(清除方法從 PDF 中刪除所有隨機或動態生成的信息(如創建信息、ID 等)
如您所見,我們將 PDF 文件轉換為兩個 UTF-8 字符串並進行比較。 所有測試都在本地成功通過。 但是當我們將它推送到 Azure 時,Azure Pipeline 會生成報告,其中一些(不是全部!)PDF 測試失敗。 我已經嘗試過的:
所以,如果你有任何想法,請幫助我。 謝謝。
根據所提供的信息,問題可能出在“GetDocument”上。 我會檢查以確保 GetDocument 實際上正在返回 Azure 中的文檔。 如果該文檔是解決方案的一部分,請確保它與構建工件一起復制,並且您的構建代理可以訪問它。 如果文檔是從外部來源獲取的,則使用模擬框架(Moq 是一個很好的框架)並模擬文檔以供測試使用。
我還沒有 50 個代表,所以我無法回復任何評論。 祝你好運。 :-)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.