如何在所有测试前执行MSTest中的数据设置代码行?
我有一个非常罕见的场景.我有一个函数,我们将其称为数据烯辅助器.此方法生成了测试所需的所有测试XML.这些XML在每个MSTest中被称为数据源. [TestMethod] [TestCategory("UITest"), TestCategory("PersonalDetailsFlow")] [DataSource("Microsoft.VisualStudio.TestTools.DataSource.XML", "|DataDirectory|\\TestFlows.xml", "flow", DataAccessMethod.Sequential)] public void TestMethod1() { //Test Code } 我使用以下代码创建测试XMLS [ClassInitialize] public static void ClassInit(TestContext con
8 2024-04-26
编程技术问答社区
如果不允许从通过测试行使的代码中创建文件,那么如何对这些方法进行测试?
我正在尝试从类似的测试项目中测试一种方法: [TestMethod] public void TestEmailGeneratedReport() { List recipients = new List(); recipients.Add("bclayshannon@hotmail.net"); recipients.Add("axx3andspace@male.edu"); recipients.Add("cshannon@PlatypiRUs.com"); bool succeeded = RoboReporterConstsAndUtils.EmailGeneratedReport(recipients); Assert.IsTrue(succeeded); } ...但是它炸毁了;我明白了," 找不到路径的一部分." ,当我从项目的主要表单的负载事件中这样称呼时,它可以正常工作:
8 2024-04-26
编程技术问答社区
在运行单元测试时,在视图模型中初始化帧对象引发异常
我有一个欢迎屏幕的Winui 3项目. 以下单元测试功能将引发异常,如何解决这些异常? 欢迎屏幕应用程序在没有此问题的情况下正确运行.帧对象ContentFrame是在视图模型中创建的,以绑定视图中的帧控件.欢迎所有解决方案,包括避免将框架对象放入视图模型中的解决方案.谢谢. [TestClass()] public class WelcomeScreenPageViewModelTests { [TestMethod()] public void WelcomeScreenPageViewModelTest() { WelcomeScreenPage welcomeScreenPage = new WelcomeScreenPage(); WelcomeScreenPageViewModel _viewModel = new WelcomeScreenPageViewModel(welcomeSc
14 2024-04-26
编程技术问答社区
MSTest-DeploymentItem属性在windows store测试项目中不可用
正如标题所说 - 我找不到将文件与Windows Store测试项目一起包含的方法. (标准.NET测试项目效果很好) 右键单击解决方案并执行:添加新项目 - > C# - > Windows Store->单元测试库(Windows Store Apps) 您获得了此样板,我添加了DeploymentItem属性: using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.VisualStudio.TestPlatform.UnitTestFramework; namespace UnitTestLibrary1 { [TestClass] public class UnitTest1 { [TestMethod] // this does not compile;
10 2024-04-25
编程技术问答社区
在单元测试中检查矩阵值的最佳方式是什么?
在单位测试中检查矩阵值的最佳方法是什么? 我的项目中有一种方法,类似的东西: int[][] getMatrix() { int[][] ans = new int[1][]; ans[0] = new int[1]; ans[0][0] = 0; return ans; } 我想使用Visual Studio标准测试引擎对该类进行单位测试,因此我创建了一个单元测试,类似的内容: [TestMethod] public void Test() { var result = getMatrix(); int[][] correct = new int[1][]; correct[0] = new int[1]; correct[0] = 0; Assert.AreEqual(correct.Length, result.Length); for (int i = 0; i
12 2024-04-25
编程技术问答社区
使用DynamicData与复杂类型的DynamicData缺少单个测试数据条目
当我使用[DynamicData]属性来提供Primitve值的枚举时,例如int,然后Visual Studio Test Explorer显示了通过动态数据提供的每个值的一个测试: public static IEnumerable PrimitiveTestData { get { yield return new object[] {1}; yield return new object[] {2}; yield return new object[] {3}; } } [TestMethod] [DynamicData(nameof(PrimitiveTestData))] public void TestWithPrimitiveTestData(int value) { Console.WriteLine($"value is {value}"); } 从测试资源
12 2024-04-25
编程技术问答社区
计时器触发的Azure函数的单元测试:提供测试数据
对单位测试HTTP触发了用测试数据触发Azure函数,并且经常描述.例如,这里: 如何为Azure函数编写单元测试v1 /p> 模拟数据在HTTP请求中给出. ,但是我有一个计时器触发azure函数,该函数从FTP服务器读取数据.我想用测试数据单元测试该功能. 我的功能: [FunctionName("MyTimerTriggeredFunction")] public static void Run([TimerTrigger("0 */2 * * * *")]TimerInfo myTimer, ILogger log, ExecutionContext context) { log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}"); ServiceClass serviceClass = new ServiceClass(log, context);
6 2024-04-25
编程技术问答社区
与Microsoft.VisualStudio.TestTools.UnitTesting命名空间有关的错误
我正在开发一个Windows Store应用程序,该应用程序将用户输入(数学问题),使用Prolog进行处理并输出答案.我添加了microsoft.visualstudio.qualitytools.unittestframework.dll作为我的Windows Store应用程序的引用. 我参考 此参考会产生两个错误, 1.Cannot解析汇编或Windows元数据文件'System.Configuration.dll' 2.Type Universe无法解析汇编:System.Configuration,版本= 2.0.0.0,.. 我可以解决此错误,还是无法将其用作Windows Store应用中的参考.我正在使用Visual Studio2013. 解决方案 您不应从要部署的任何生产组件中引用Microsoft.VisualStudio.QualityTools.UnitTestFramework汇编.它仅应从测试项目中引用. 删除参考并修
16 2024-04-25
编程技术问答社区
c#-selenium-MSTest-Unable to add a result file ( using testcontext.AddResultFile ) to the report using testcontext
我正在使用mstest- C# - Selenium运行一套测试.如果没有失败的步骤并希望将其上传(附加),我正在使用屏幕截图, 当我作为几个测试的单个测试运行时,一切都很好,结果与附件一起进行. 但是,当我并行运行测试时,即使测试失败 ,我也无法看到带有附件的结果文件 我在trx文件中获取以下内容 testContext消息: 值不能为null. 参数名称:路径 我用来将文件连接到TRX文件的代码是 Screenshot screenShot = ((ITakesScreenshot)driver).GetScreenshot(); string fileName = fullFilePath + "Screenshot_" + driver.testContext.TestName + DateTime.Now.ToString("yyyy-dd-MM-HH-mm-ss")+".png"; screenShot.SaveAsFile((fileNam
8 2024-04-24
编程技术问答社区
如何为azure函数写单元测试 v1
我编写了一个Azure函数v1 httptrigger,该httptrigger从我们的API服务中获取客户端详细信息和交易,只有一个参数是"频率",因此,当触发函数时,它将获得详细信息,然后获取tracsactions对于每个零售商的详细信息并返回每个零售商的交易费用列表,我想为我的功能编写一个单位测试,但我无法为我的场景看到一个很好的示例,有人可以给我一个示例单位测试(使用MOQ,如果可能的话),这是功能代码库: [FunctionName("FunctionTest1")] public static async Task Run([HttpTrigger(AuthorizationLevel.Function)]HttpRequestMessage req, ILogger log) { log.LogInformation("C# HTTP trigger function processed a request
10 2024-04-24
编程技术问答社区
C#范围外的对象不能被收集
我正在尝试构建我的第一个单元测试,并具有分别在其构造函数和驱动器中分别增加实例计数器的类.我有一个测试来确保这有效,但失败了,看来我的其他测试中的其他实例在离开范围时没有打电话给他们. . public class Customer { public Customer() { ++InstanceCount; } public Customer(int customerId) { CustomerId = customerId; ++InstanceCount; } ~Customer() { --InstanceCount; } public static int InstanceCount { get; private set; } } [TestClass] public class CustomerTest {
8 2024-04-24
编程技术问答社区
如何编写测试来验证Entity Framework数据库第一模型
我有一个实体框架数据库第一个模型. 我想编写一个MSTST/NUNIT测试,以验证我的EDMX模型中定义的所有存储的Proc和表是否仍然有效. 与大型开发人员团队有些仅在存储过程中工作,而另一些则在C#中我想进行集成测试以验证/验证项目中的EF模型. 我在LINQ2SQL中进行了测试,以查找在存储过程调用上常见的属性,然后运行SQL查询以验证存储过程仍然存在. 我现在升级到EF6,我想在构建中保留类似的理智检查. 这就是我到目前为止所拥有的. var list = context.MetadataWorkspace.GetItems(DataSpace.CSpace); var badSp = new List(); foreach (var table in list) { if (!DoesTableExist(dbContext, table)) { badSp.Ad
8 2024-04-23
编程技术问答社区
如何获得HttpContext.Current.Server.MapPath的假路径,它被分配给方法单元测试中的受保护对象?
我是单位测试的新手.我得到NullReferenceException. 如何设置HttpContext.Current.Server.MapPath进行单元测试? class Account { protected string accfilepath; public Account(){ accfilepath=HttpContext.Current.Server.MapPath("~/files/"); } } class Test { [TestMethod] public void TestMethod() { Account ac= new Account(); } } 解决方案 HttpContext.Server.MapPath将需要一个基础虚拟目录提供商,该提供商在单位测试中不存在.摘要您可以模拟的服务背后的路径映射以进行代码可测试. public int
6 2024-04-23
编程技术问答社区
(MSTest)扩展ExpectedExceptionBaseAttribute,隐藏测试失败解释
运行此测试时: [TestMethod] [ExpectedException(typeof(SpecialException))] public void Test1() { throw new NotImplementedException(); } Visual Studio告诉我为什么失败: 测试方法[...].test1投掷 异常系统.notimplemplededException,但异常 [...].预期的特定感受.例外 消息:system.notimplementedException:方法或操作是 未实施. 但是,当我尝试扩展ExpectedExceptionBaseAttribute(期望在SpecialException中使用错误代码)时: [AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherite
12 2024-04-23
编程技术问答社区
在单元测试中获得命令行参数
在Visual Studio 2008(PRO)的测试项目中,我创建了一个测试项目,我想配置项目属性,以将命令行参数提供给测试.我设置了属性,但随后意识到我不知道如何实际使用该参数. 您如何从mstest获得参数? 解决方案 vs 2008测试汇编为DLL,据我所知,该测试无法直接接收命令行参数. 您可以为dll添加配置文件'app.config'并改用. 只需要当心,只需复制.config文件即可运行的测试容器. 如果您有以下... mytest.dll mytest.dll.config lib.dll lib.dll.config 您从mytest.dll引用lib.dll,当您运行测试时,lib.dll.config不会被复制,并且由于此而可能会失败. 其他解决方案 也许您可以使用编辑:getCommandline()是一个win32功能,但是应该有一个相应的.NET函数.
8 2024-04-23
编程技术问答社区
c#测试中的超时问题
任何人都可以告诉测试时间之后是否总是执行. [Timeout(1000)][TestMethod] public void test() { try { System.Threading.Thread.Sleep(2000); } finally { //do something } } 解决方案 最终被执行始终,无论您是否有尝试/捕获/块,它都会在任何一个完成时执行 其他解决方案 如果可能
14 2024-04-23
编程技术问答社区
删除测试后的MSTest空目录
我有一个单元测试(在VS2008或VS2010中使用MSTST),在其中我创建了一个这样的文件夹: [TestMethod] public void TestMethod1() { string newdir = Path.Combine(Directory.GetCurrentDirectory(), "WorkingRoot"); Directory.CreateDirectory(newdir); Assert.IsTrue(true); } 在测试期间,当我在断言处设置断点时,我看到该文件夹​​是在MSTest的特定运行文件夹中创建的.但是,当测试完成后,该文件夹已被删除.为什么? 解决方案 执行后似乎删除了 empty 目录.
8 2024-04-23
编程技术问答社区
C#单元测试与普通代码重复
可能的重复: 是[设置]和[设置]和[拆卸]在mstest中? 我正在学习如何使用单元测试和自动测试,并且有几个问题,我无法找到/找到答案 i当前通过具有多个调用各种方法并在其中断言的[testMethod]来测试.目前,TestMethod的所有内容都具有重复的代码,以击中数据库并将其设置为其余的测试.一个例子是: public void TestDBReturnsFooInFormatXyz() { var foo = HitDBAndReturnStuff(); Assert.IsTrue( // foo format is xyz ); } public void TestDBFooContainsAbc() { var foo = HitDBAndReturnStuff(); Assert.IsTrue( // foo contains abc ); } 所以一些问题: 在测试类中制作私人领域并设置构造函数是最好的做法吗
8 2024-04-23
编程技术问答社区
MSTest命令行设置
我们需要能够将服务器地址传递到由TeamCity Conture Contunuel Integration(CI)软件调用的测试套件的MSTest命令行中. 以前我们在C#单元测试中创建了#if常数,这使MSBUILD更改. 有更好的方法吗?这样,看起来很骇人听闻. 是否有一种方法可以创建配置文件并传递以在mstest内使用的参数? 解决方案 我使用编译时,app.config被复制到bin文件夹,并将其重命名为[assembly-name] .config.然后,您可以通过在开发系统上,对.config文件进行自定义以对开发人员使用的本地测试服务器进行测试. 我发现这是最清洁的方法,因为它记录了如何在源控件中配置测试. 如果您需要更多的灵活性,则可以使用一些XML变换或从自定义MSBUILD脚本替换的团队中设置一个额外的构建步骤,以根据需要修改.config文件.
10 2024-04-23
编程技术问答社区