Tag: 测试

如何通过Gradle测试任务在我的JUnit上启用调试

当我尝试通过gradle测试任务运行JUnit测试时遇到了麻烦。 当我使用Run As – > JUnit测试直接在eclipse中运行测试时,一切正常,测试成功。 但是通过测试任务,测试总是失败。 编码我的资源txt文件可能有些麻烦。 所以我想在使用gradle启动测试时启用调试 在build.gradle中,我的测试任务现在看起来像: test { tasks.withType(Compile) { options.encoding = ‘UTF-8’ } } 那么我应该怎么做才能启用调试? 我在Eclipse中从Gradle面板运行gradle任务,而不是从控制台运行。 谢谢!

自动GUI测试

我正在使用Netbeans IDE 6.9编写Java桌面应用程序(SWING)。 我想做自动GUI测试。 我所知道的关于测试的是JUnit测试,它不适用于我的GUI应用程序。 是否有可用于测试GUI应用程序的特定测试框架,那里有好的吗? 哪些是易于使用的(我需要做测试,但我没有很多时间,但是,我不想忽略它)。 我的应用程序基本上是一个框架,有三到四个选项卡(不是很大),我的测试应该不复杂,那么是否有一个简单的框架可以让我快速测试我的应用程序并以强有力的方式查找错误? 谢谢

如何在此代码中修复此错误

当我运行jUnit测试时,我在testSetName上出错了,为什么会这样? 因为测试是看是否名称是ferndown,那就是它设置为什么,为什么错误呢? 我认为jUnit正在测试分支名称是否准确且看起来是否准确,那为什么它会显示测试失败? @Test public void testSetName() { branch2.setName(“Ferndown”); assertEquals(“Ferndown”, branch2.getName()); } 分行代码: package prog2.as1; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashSet; import java.util.List; import java.util.Set; public class Branch implements Comparable { public static enum SortOrder implements Comparator { /** * Sort ordered by the name of the customer */ SORTNAME { @Override public […]

如何在AfterMethod中的TestNG测试失败?

我想在每次测试后检查一些外部日志文件,如果在执行期间出现ary错误。 在AfterMethod中抛出exception不起作用,因为TestNG对它的处理方式不同:它只会使配置方法失败而不是前面的测试。 我的方法是这样的: @AfterMethod(alwaysRun = true) protected void tearDown(ITestResult result) { if (thereWasAProblemDuringTestExecution()) { result.setStatus(ITestResult.FAILURE); result.setThrowable(getSomeThrowableSomebodyStoredAnywhere()); } // doing other cleanUp-tasks } 但是,我的Eclipse TestNG插件仍然表示测试通过了。 在配置方法中是否可能(以及如何)使测试失败(而不仅仅是配置方法)?

为什么这段代码会从我项目中随机的其他代码中抛出输出? 我怎样才能解决这个问题?

我是Java的新手,我可能搞砸了代码中的一些东西。 但这里有什么问题? 我正在尝试为主页中的元素创建对象,我必须测试。 package pageObjects; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; public class HomePage { private static WebElement element; public static void main(String args[], WebDriver driver){ HomePage hp = new HomePage(); hp.SignInButton(driver); hp.ImageButton(driver); System.out.println(“Yup”); } public WebElement SignInButton(WebDriver driver){ element = driver.findElement(By.linkText(“Sign In”)); System.out.println(“Yeua”); return element; } public WebElement ImageButton(WebDriver driver){ return element = driver.findElement(By.linkText(“Images”)); […]

在Appium ios中使用Selenium Webdriver选择器

我正在开发的一个项目是与ios应用程序同时开发一个Web应用程序(同样的事情),我希望能够使用现有的Selenium测试,但我们在选择器方面遇到了麻烦。 是否有可用于Selenium Webdriver和Appium ios的选择器类型或属性名称,因此我可以将变量设置为浏览器或应用程序,并且它们可以在两者上运行和工作。 这个项目上没有人以前使用过Appium,所以我们缺乏很多知识。 我尝试使用ID并发现ios不能与它们一起使用,更改为名称并发现名称已从appium中删除。 如果可能的话,我们更愿意使用与浏览器中的选择器相同的选择器。 谢谢

自动启动/停止Web服务器以进行前端测试

现在,我通过maven分别启动嵌入式tomcat: mvn tomcat7:run 然后运行mvn test目标。 我的问题是我可以配置maven以自动执行此操作吗? 必须在所有测试运行之前启动tomcat ,然后停止。 使用以下tomcat插件的maven配置: org.apache.tomcat.maven tomcat7-maven-plugin 2.1 /SpringMvcExample http://localhost:8080/manager/text tomcat7 我试图将插件配置更新为: org.apache.tomcat.maven tomcat7-maven-plugin 2.1 /SpringMvcExample http://localhost:8080/manager/text tomcat7 start-tomcat pre-integration-test run stop-tomcat post-integration-test shutdown 但它没有帮助

WebDriver无法使用Java通过xpath找到元素

以下是使用Java的WebDriver代码片段: WebDriver driver = new FirefoxDriver(); driver.get(“http://www.google.pl/”); driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS); WebElement element = driver.findElement(By.name(“q”)); driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS); WebElement query = driver.findElement(By.xpath(“//html/body/div[2]/span/center/form/table/tbody/tr/td[2]/div/div/input”)); query.sendKeys(“asd”); 执行代码后,我得到以下exception: 线程“main”中的exceptionorg.openqa.selenium.NoSuchElementException:无法定位元素:{“method”:“xpath”,“selector”:“// html / body / div [2] / span / center / form / table / tbody / tr / td [2] / div / div / input“}系统信息:os.name:’Windows 7’,os.arch:’x86’,os.version:’6.1’,java.version: ‘1.6.0_24’驱动程序信息:driver.version:sun.reflect.NativeConstructorAccessorImpl.newInstance0(本地方法)中的sun.reflect.NativeConstructorAccessorImpl.newInstance(未知来源)位于sun.reflect.DelegatingConstructorAccessorImpl.newInstance(未知来源)处的RemoteWebDriver org.openqa.selenium.remote上的org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:131)中的java.lang.reflect.Constructor.newInstance(未知来源).ErrorHandler.throwIfResponseFailed(ErrorHandler.java:105 )org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:409)org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:192)at org.openqa.selenium.remote.RemoteWebDri ver.findElementByXPath(RemoteWebDriver.java:265)atg.openqa.selenium.By […]

TDD:为什么让应用程序代码知道它正在测试,而不是运行,这可能是错误的?

在这个post中 ,Brian(唯一的回答者)说“你的代码应该以一种与测试无关的方式编写” 单一的评论说“你的代码绝对不应该在全球范围内分支”我正在测试标志“。”。 但是没有给出理由,我真的希望听到一些关于此事的理性思考。 这将是非常容易的(特别是考虑到许多测试具有对app类的包私有访问这一事实)以进入给定的app类并设置一个布尔值来表示“这是一个测试,而不是一个运行”。 我发现自己跳过篮球(注入模拟的私人领域等)以实现的各种各样的事情可能变得更容易实现。 同样显而易见的是,如果你把它拿得太远就可能是灾难性的……但作为软件测试军械库中许多人的一个工具,为什么这个概念会遇到这样的耻辱? 回答Mick Mnemonic: 如果您实际在方法中间创建一个新的类实例并将其分配给私有字段,那么这可能有用的一个简单示例:私有字段模拟在这种情况下将无济于事,因为您正在替换私有领域。 但实际上创建一个真实对象可能会非常昂贵:您可能希望在测试时将其替换为轻量级版本。 我昨天遇到过这种情况,实际上……我的解决方案是创建一个名为createXXX()的新的包私有方法…所以我可以嘲笑它。 但这反过来反对“你不能创造适合你的测试的方法”的格言!

集成测试无法启动(Failsafe,Maven)

我正在尝试使用Maven Failsafe插件来运行此配置的集成测试: maven-failsafe-plugin 2.7.1 integration-test integration-test verify verify org.mortbay.jetty maven-jetty-plugin 6.1.7 8080 3600000 / 3 src/main/webapp/WEB-INF **/*.jsp **/*.html **/*.page **/*.properties **/*.xml start-jetty pre-integration-test run-war 0 true stop-jetty post-integration-test stop 一切都很好,直到Jetty在预集成测试阶段开始。 然后没有任何事情发生,好像在等待什么。 最后一行说: [INFO] Started Jetty Server 如何让测试在之后开始? 我使用mvn verify运行maven。