问题标签 [testcontext]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
229 浏览

c# - 从当前运行的单元测试中获取信息

我必须从帮助类的静态方法中找到有关当前正在运行的 UnitTest 的信息。这个想法从每个测试中得到一个唯一的密钥。

我考虑过使用TestContext,不确定是否可能。

示例

我们目前将此密钥存储在带有 的线程上Thread.SetData,但如果测试代码产生多个线程,则会出现问题。对于每个线程,我需要为给定的单元测试获取相同的密钥。

Foo.GetSomething()不是从单元测试本身调用的。调用它的代码是 Unity 注入的 mock。

编辑

我将稍微解释一下上下文,因为它似乎令人困惑。

通过统一创建的对象是实体框架的上下文。运行单元测试时,上下文在由Foo.GetSomething. 让我们称之为DataPersistance

DataPersistance不能是单例,因为单元测试会相互影响。

我们目前每个线程都有一个实例,DataPersistance只要测试的代码是单线程的,女巫就很好。

DataPersistance我想要每个单元测试的一个实例。如果每个测试可以获得一个唯一的 guid,我就可以解析该测试的实例。

0 投票
2 回答
839 浏览

nunit - 如何访问 NUnit 中的当前测试方法

TestContext.CurrentContext.Test有几个像 FullName 这样的属性,可以解析这些属性以获取 NUnit 中的当前测试方法。但是,当使用 TestCase 属性上的 TestName 属性覆盖测试名称时,这些都没有帮助。

有没有一种简单的方法可以从 NUnit 测试中获取当前测试方法的 MethodInfo?我不能简单地使用堆栈跟踪,因为当测试方法不在堆栈上时,我需要 SetUp 和 TearDown 中的这些信息。

我正在使用 NUnit 2.6.2

0 投票
1 回答
1092 浏览

c# - 当从记录器文件调用到测试用例文件时,testContextInstant 值始终为 Null

我已经阅读了一些关于 MStest 的 TestContext 的信息,并且可以相应地使用它。

现在我关于 TestContext 的任务有点不同,我很困惑它是如何工作的。

与三个文件有关的情况:

  1. 在 testcase.cs 文件中,TestContext 属性在 [Test Class] 中。但是在[TestMehtod]中,我不想像testContextInstance.WriteLine("WRITE TEST PARAMETERS")这样直接使用,它会放在另一个名为TestLogger.cs的文件中。

    /li>
  2. 在 AssemblySetup.cs 文件中,在 [AssemblyInitialize] 中, public static void AssemblySetUp(TestContext testContext) 完成,它包括一个函数 InitializeLogging(); 在这个函数中,我使用 Logger.RegisterLogChannel(LogChannel.TestLog, new TestLogger()) 初始化 TestLogger。

    /li>
  3. 下面我在 TestLogger.cs 中添加 testContextInstance.WriteLine(title)。但在调试中,testContextInstance 始终为空。

    /li>

我正在尝试修改 Logger.RegisterLogChannel(LogChannel.TestLog, new TestLogger(testContext)) 的目的是告诉TestLogger,会调用testContext。在TestLogger中,我还添加了私有TestContext testContextInstance;和公共TestLogger(字符串testContext)

问题还是一样,在Warning中说,testContextInstance永远不会被赋值,它的默认值永远是null

我希望你能理解我的问题。请给我一些关于如何处理它的想法或解决方案,非常感谢。

0 投票
1 回答
358 浏览

c# - 从 TestContext 将数据读入 IDataReader

这可能听起来很奇怪,但这正是我想要做的:我有一个 TestMehod Currency_ReadItem_Test() ,它在 Currency 类中测试 ReadItem() 方法。此 ReadItem() 将 IDataReader 对象作为参数并填充类中的本地数据成员。

现在的问题是我想在我的具有 Excel 工作表数据源的 TestMethod 中测试这个 ReadItem()。知道如何首先从 Excel 表中填写我的阅读器,以便可以将其传递给此函数以进行测试吗?

任何帮助,将不胜感激。

谢谢

0 投票
5 回答
64666 浏览

c# - 了解 MSTest TestContext

使用 MSTest,我需要从[TestInitialize]方法中获取当前测试的名称。你可以从酒店得到这个TestContext.TestName

TestContext我发现传递给[ClassInitialize]方法的静态变量和声明为公共属性(并由测试运行程序设置)的静态变量之间的行为存在意外差异。

考虑以下代码:

这会导致输出以下内容(从 VS2013 中的 Resharper 测试运行器输出复制粘贴):

我之前假设两个实例TestContext是等价的,但显然它们不是。

  • public TestContext物业的行为符合我的预期
  • private static TestContext传递给该方法的值[ClassInitialize]不会。由于TestContext具有与当前正在运行的测试相关的属性,因此此实现似乎具有误导性和破坏性

是否有任何情况下您实际上更喜欢使用TestContext传递给方法的[ClassInitialize]方法,或者最好忽略它并且从不使用它?

0 投票
1 回答
1032 浏览

c# - 单元测试TestContext多次调用

我有一个调用 2 个子测试方法的测试方法。这两个子方法都是从 XML 文件中驱动的数据。如果我运行每个子方法,它们运行良好且成功。但是,当我运行主测试方法(两个子方法的调用者)时,它发现 TestContext.DataConnection 和 TestContext.DataRow 为空。

如果我全部运行,则 2 个方法通过,1 个失败。如果我单独运行, SaveData_Json_LocalStorage 不会通过,总是将 TestContext.DataRow 设为 null。里面调用多个方法可以吗。编写链式测试用例的最佳方法是什么。

0 投票
1 回答
664 浏览

c# - 从 WPF 应用程序运行编码的 ui 测试(不使用 mstest)

我想从 WPF 应用程序运行我编码的 ui 测试用例。但是,当我初始化播放并调用测试方法时,我收到一个错误,即 TestContext 为 NULL。任何人都可以建议是否可以通过 WPF 应用程序执行编码的 ui 测试?此外,由于测试用例是数据驱动的并且我需要访问 TestContext,因此我如何以这种方法访问 TestContext。

谢谢。

0 投票
1 回答
682 浏览

mstest - 如何从远程测试代理为 mstest 获取测试结果输出文件附件

我的 MSTest 在末尾创建了一个工件,并使用TestContext.AddResultFile.

如果我在本地机器上运行测试,那么附加的文件可用于测试输出,但是当我在远程测试代理上运行测试时,输出没有任何附加文件。

我检查了文件中“数据和诊断”部分中的所有选项.testsettings,但没有任何效果。

如何从远程测试代理获取测试结果附件?

0 投票
2 回答
739 浏览

java - @ContextConfiguration 不创建事务代理

我正在尝试创建某种集成测试环境,并在测试上下文框架没有为我的 bean 创建事务代理时遇到问题。我的代码:

JUnit 类:FileServiceImplTest

测试上下文框架注入到 FileService bean 本身的“fileService”中,而不是事务代理。这是例外的原因:

当我在 tomcat 下运行此代码时,一切正常,问题仅在运行测试期间出现。请帮助解决这个问题。

我的其余代码:FileServiceImpl

文件DAOImpl.java

应用程序上下文.xml

applicationContext-db.xml

hibernate.properties

pom.xml

0 投票
0 回答
109 浏览

mstest - MSTest:为什么在 ExpectedCondition 之后 TestOutcome = InProgress?

我有以下试用代码:

现在,第一个测试的结果Passed符合预期。第二个测试确实引发了异常(我已经在没有ExpectedException属性的情况下对其进行了测试)。它在视觉上被标记为通过,但控制台中的结果显示InProgress

当在 中查询此状态时,怎么会这样TestCleanup