我在寻找如何使用 XUnit 在 MS Test Runner(与 Resharper 测试运行器中相同)中根据类层次结构显示测试时遇到问题。
我的结构类似于下面的示例:
public class ManagerTests
{
public class Create
{
public class When_Something
{
[Fact]
public void Then_this_should_happen()
{
}
}
public class When_Something_else
{
[Fact]
public void Then_else_should_happen()
{
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我希望它显示为(在测试运行程序中):
ManagerTests
Create
When_something
Then_this_should_happen
When_something_else
Then_else_should_happen
Run Code Online (Sandbox Code Playgroud)
但我似乎最终得到的是:
ManagerTests+Create+When_something
Then_this_should_happen
ManagerTests+Create+When_something_else
Then_else_should_happen
Run Code Online (Sandbox Code Playgroud)
我查看了xunit 配置设置,但似乎没有找到任何调整此设置的方法。我尝试了不同的分组选项,但没有找到任何解决此问题的方法。发现一些较旧的帖子询问有关此问题的问题(如本帖子),但到目前为止我还没有找到如何做到这一点。
所以问题是:我怎样才能停止嵌套的类名串联(class1+class2+class3)并呈现它们的层次结构?
我已经看到很多关于如何在新选项卡中打开链接的线索,但是如果您有一个创建新选项卡的链接并且您需要验证标题呢?我需要做的就是单击链接 - >验证新选项卡是否具有正确的标题 - >关闭选项卡并继续在原始选项卡上.在此先感谢您的帮助!
所以我实现了一个 Cucumberjs 数据表,但是我认为我做得不对..这是我所拥有的
this.And(/^If I click the row "([^"]*)" then I should the following nested information$/, function (rowName, data) {
resultPage.clickRow(rowName);
data = dataTable.raw();
return console.log(data);
});
Run Code Online (Sandbox Code Playgroud)
我的小黄瓜步骤看起来像
Then If I click the row "Summary" then I should the following nested information
| Tax | 11.50
| Gratuity | 4.50
| Total | 26.59
Run Code Online (Sandbox Code Playgroud)
现在我只是想获取此表并将其打印出来以确保它以正确的格式返回,但我收到词法错误并且测试甚至无法开始。你如何在Javascript中实现这个?我似乎无法在网上找到 cucumberjs 的任何文档或示例,但是当然有几个针对 java/cucumber 的文档或示例。
另外,我知道词法错误与它期望这是一个场景大纲这一事实有关,并且我没有在表之前指定示例:。然而,这不应该是一个场景大纲。这应该是一个数据表..
我有一个如此微不足道的问题,但我很难让我的代码在继续之前正确等待对象。
我为我的驱动程序设置了以下配置
session.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(60);
Run Code Online (Sandbox Code Playgroud)
我原以为这意味着它会等待至少 60 秒,然后才会抛出与元素识别相关的错误,例如
Message: System.InvalidOperationException : An element could not be located on the page using the given search parameters.
Run Code Online (Sandbox Code Playgroud)
然而,这种情况并非如此。当我尝试调用以下命令时,大约 2 秒后出现错误。
WindowsElement btn = session.FindElementByXPath("//Button[@Name='NEXT']");
btn.Click();
Run Code Online (Sandbox Code Playgroud)
该错误是在我刚刚定义按钮属性的行上引发的,而不是在实际的 Click() 方法上引发的。我没有正确传递元素属性吗?为什么按钮的实例化也会对其进行搜索?
所以我在所有运行并行测试的 xml 文件中使用线程数。我注意到了一些事情......当我增加它时,我通常会得到更好的结果,但是在 Selenium Grid 上占用了更多空间。如果我将它降低到 10 左右,我会出现很多超时并且我的测试失败。线程数到底有什么作用?每个 Test 类是一个线程还是每个 @Test 一个线程?后台到底发生了什么?
awk '{for(i=1; i<=NF; i++) printf("%d ",$i)}' | sort -n
Run Code Online (Sandbox Code Playgroud)
它读取的文件就像
55 89 33 20
Run Code Online (Sandbox Code Playgroud)
并正常打印出来,而不是按数字排序.为什么?
我对自动化有一个问题。并不是说我不同意这绝对是测试应用程序的最佳方法,但从某种意义上说,实现稳定性是非常困难的。你们如何让测试稳定?当然,我添加了显式等待和偶尔的等待thread.sleep(),但它们永远不会 100% 稳定。这个帖子的目的是发布一些你们发现的对自动化测试产生影响的提示和技巧
automation ×4
java ×3
selenium ×3
c# ×2
testng ×2
bash ×1
cucumber ×1
cucumberjs ×1
javascript ×1
linux ×1
protractor ×1
winappdriver ×1
xunit ×1