我有一个使用灯具的功能测试.我也在我的单元测试中使用灯具,但它们没有缺陷.运行功能测试时,我得到一个:
NoMethodError: undefined method 'recycle!' for #<Response:0x10346be10>
/test/functional/responses_controller_test.rb:10:in 'test_testing'
到目前为止,我的功能测试只是进行索引操作.例:
setup do
@response = responses(:one)
end
test "testing" do
get :index
assert true
end
Run Code Online (Sandbox Code Playgroud)
我的TestHelper类确实包含了所有灯具,因此响应灯具肯定会加载.就像我说的那样,灯具在单元测试中运行得非常好.
知道可能导致这种情况的原因吗?
我需要使用Selenium在新标签中打开链接.
那么是否可以在Selenium中执行ctrl + click元素以在新选项卡中打开它?
当我使用此命令在Maven中运行单个测试时:
mvn test -Dtest=InitiateTest
Run Code Online (Sandbox Code Playgroud)
我得到以下结果:
No tests were executed!
Run Code Online (Sandbox Code Playgroud)
它在几分钟前工作,但现在由于某种原因停止工作.我mvn clean在运行测试之前试过运行了几次,但没有用.
测试看起来像这样:
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.Select;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class InitiateTest {
public static FirefoxDriver driver;
@Before
public void setUp() throws Exception {
driver = new FirefoxDriver();
}
@Test
public void initiateTest() throws Exception {
driver.get("http://localhost:8080/login.jsp");
...
}
@After
public void tearDown() throws Exception {
driver.close();
Run Code Online (Sandbox Code Playgroud)
}}
更新:
这是通过将此依赖项添加到POM引起的:
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium</artifactId>
<version>2.0b1</version>
<scope>test</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)
当我删除它,一切正常.即使我添加这两个依赖项而不是前一个依赖项,一切正常:
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-support</artifactId>
<version>2.0b1</version>
<scope>test</scope>
</dependency> …Run Code Online (Sandbox Code Playgroud) 我正在努力使用Espresso在Android上进行功能测试.我的应用程序是一个Multdex应用程序,所以我按照以下链接写的说明如下:(https://developer.android.com/tools/building/multidex.html).
我已经像这样配置了我的build.gradle:
apply plugin: 'com.android.application'
apply plugin: 'android-apt'
def AAVersion = '3.3.2'
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4'
}
}
apt {
arguments {
androidManifestFile variant.outputs[0].processResources.manifestFile
resourcePackageName 'br.com.foo'
}
}
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "br.com.foo"
minSdkVersion 15
targetSdkVersion 21
android.enforceUniquePackageName = false
multiDexEnabled true
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
testApplicationId "br.com.foo.test"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
testInstrumentationRunner "com.android.test.runner.MultiDexTestRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
} …Run Code Online (Sandbox Code Playgroud) 我目前正在为我的新项目建立一个开发环境,我正在考虑一件事.我打算使用Yii.我希望自动化功能测试,我已经有了gerrit和Jenkins,工作.
我读了这篇文章,发现selenium有类似html套件的东西.我之前从未听说过,我总是编写我的测试来通过PHPUnit运行.我使用了这里描述的默认Yii功能测试环境.
所以我的问题是,这两种方法的优点和缺点是什么?我已经可以想到一个html套件的pro和con.Pro是,编写测试非常简单 - 只需在Selenium IDE中"单击"它们即可.问题是,我可能不得不在测试之前运行数据库固件,我无法更改它们,或运行它们 - 加载夹具,运行测试,加载夹具,运行测试,但我想这将使测试更多更模糊.您如何看待/您在这方面的经历是什么?
我正在运行一个名为“创建管理”的测试。测试会先创建admin,然后检查admin是否创建成功。
在脚本中,我有一部分代码我想等待 3 秒再继续,因为每当单击提交按钮时,网站在导航完成后需要花费 3 秒来刷新管理表(用户信息列表) 。有关更多信息,此刷新不是导航,因此我的“waitForNavigation()”不起作用。
因此,流程将是这样的:“填写表单”>“点击提交按钮”>“等待导航”>“重新加载用户表(3s)”。
如果我不等待3秒表刷新,测试将抛出错误,因为在表中找不到注册用户(我有其他脚本来查找用户)。
我正在寻找改进网站功能测试自动化过程的建议.这是我过去尝试过的.
我以前有一个使用WATIN的测试项目.您可以有效地编写类似"单元测试"的内容,并使用WATIN自动化浏览器点击您的网站等.
当然,您需要运行一个站点.所以我让测试实际上将我的web项目中的代码复制到本地目录,并在任何测试运行之前启动指向该目录的Web服务器.
这样,有人可以从我们的源代码控制中获取最新信息并运行我们的构建脚本,并查看所有测试的运行情况.他们也可以简单地从IDE运行所有测试.
我遇到的问题是我花了很多时间来维护代码来设置测试环境而不是测试.更不用说由于所有复制而花了很长时间才能运行.此外,我需要测试各种方案,包括安装,这意味着我需要能够将数据库设置为各种初始状态.
我很好奇你已经做了什么来自动化功能测试来解决其中的一些问题并且仍然保持简单.
更多细节 由于人们要求更多细节,这里是.我正在使用Visual Studio和Cassini(内置的Web服务器)运行ASP.NET.我的单元测试在MbUnit中运行(但这不是那么重要.可能是NUnit或XUnit.NET).通常,我有一个单独的单元测试框架运行我所有的WATIN测试.在AssemblyLoad阶段,我启动Web服务器并在本地复制我的所有Web应用程序代码.
我对任何平台的解决方案感兴趣,但我可能需要更多关于每个东西的含义的描述.:)
asp.net testing automated-tests web-testing functional-testing
经过3年的拖延,今天是我开始测试我的Rails应用程序的那一天.我的第一步是在我的Rails 3 beta4应用程序中修复失败的测试.
我最近3次失败的测试与devise gem及其authenticate_user有关!我控制器顶部的before_filter中的方法.
通过帮助我解决这个问题,你可以获得很好的业力,因为它可以让我从现在开始使用TDD方法.
这是让我烦恼的错误:
1) Error:
test_should_get_accepted(ModerationControllerTest):
NoMethodError: undefined method `authenticate!' for nil:NilClass
/test/functional/moderation_controller_test.rb:10:in `test_should_get_accepted'
Run Code Online (Sandbox Code Playgroud)
Devise只是在这个页面中提供了功能测试指针和帮助器:http://github.com/plataformatec/devise但我不知道如何将它应用到应用程序中.
你可以给这个测试noob一些关于如何使用这些助手的详细说明吗?
我正在扩展python 2.7 unittest框架来进行一些功能测试.我想做的一件事就是阻止所有测试在测试内部和setUpClass()方法内部运行.有时如果测试失败,程序就会破坏,不再有任何用处继续测试,所以我想阻止测试运行.
我注意到TestResult有一个shouldStop属性和一个stop()方法,但我不确定如何访问测试内部.
有没有人有任何想法?有没有更好的办法?
python testing automated-tests functional-testing python-unittest
众所周知,TDD意味着"首先编写测试,然后编写代码".当谈到单元测试时,这很好,因为你在"单元"内是有限的.
然而,当涉及到UI时,事先编写功能测试对我来说意义不大(对我而言).这是因为功能测试必须验证(可能很长的)一组功能要求.这通常可以跨越多个屏幕(页面),前提条件如"登录","最近插入记录"等.
在需要进行全功能测试以确定成功或失败的情况下,测试驱动开发很难使用.这些示例包括用户界面,使用数据库的程序以及一些依赖于特定网络配置的程序.
(当然,维基百科不是"权威",但这听起来很合乎逻辑.)
所以,任何想法,或更好的体验,功能测试 - 首先是UI,然后是代码.它有用吗?它是"疼痛"吗?
testing ×5
selenium ×3
python ×2
android ×1
asp.net ×1
ava ×1
devise ×1
fixtures ×1
htmlsuite ×1
java ×1
javascript ×1
maven ×1
playwright ×1
recycle ×1
ruby ×1
selenium-ide ×1
tdd ×1
unit-testing ×1
web-testing ×1
yii ×1