评估Document Imaging SDK,我正在尝试在Visual Studio 2012中创建一个单元测试项目来检查一些代码片段。我在安装目录' C:\ LEADTOOLS 18 \ Bin \ Dotnet4 \ Win32 '中引用了LeadTools dll,并将我的测试项目输出目录指向同一目录(在我的输出旁边包含所有LeadTools二进制文件) )。但是运行单元测试我得到以下的执行:
测试方法 LeadTools.Evaluation.UnitTests.Snippets.PdfToTiffTest.PdfToTiffTest 引发异常:Leadtools.RasterException:Raster PDF Engine是 需要使用此功能
我怀疑问题是由VSTest进程在'C:\ LEADTOOLS 18 \ Bin \ Dotnet4 \ Win32'之外运行引起的,并且可以'找到必要的LeadTools二进制文件。
问题:将LeadTools二进制文件重新添加到测试项目的正确方法是什么?
单元测试代码:
using System.IO;
using Leadtools;
using Leadtools.Codecs;
using Leadtools.Pdf;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace LeadTools.Evaluation.UnitTests.Snippets
{
[TestClass]
public class PdfToTiffTest
{
[TestMethod]
public void PdfToTiffTest()
{
const string pdfPath = "C:\Samples\source.pdf";
var tiffPath = Path.ChangeExtension(pdfPath, "tiff");
// Load the input PDF document
var document = new PDFDocument(pdfPath);
using (var codecs = new RasterCodecs())
{
// Loop through all the pages in the document
for (var page = 1; page <= document.Pages.Count; page++)
{
// Render the page into a raster image
using (var image = document.GetPageImage(codecs, page))
{
// Append to (or create if it does not exist) a TIFF file
codecs.Save(image, tiffPath, RasterImageFormat.TifJpeg, 24, 1, 1, -1, CodecsSavePageMode.Append);
}
}
}
}
}
}
答案 0 :(得分:1)
在VS 2010中,可以在“测试设置”中指定解析组件的位置。要在VS 2012中执行此操作,您可以在App.config中执行此操作,如Visual Studio Test Team在此文章Assembly Resolution for Unit Tests中所述。
只需将app.config添加到您的测试项目中,然后放置相应的&lt; AssemblyResolution &gt;的信息。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="TestExecution" type="Microsoft.VisualStudio.TestTools.Execution.TestExecutionSection, Microsoft.VisualStudio.QualityTools.ExecutionCommon, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</configSections>
<TestExecution xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
<AssemblyResolution>
<RuntimeResolution>
<Directory path="%ProgramFiles%\SampleApplication\" includeSubDirectories="true"/>
</RuntimeResolution>
</AssemblyResolution>
</TestExecution>
</configuration>