0
有一點噩夢,使用Scirocco來記錄一個宏來測試Selenium,現在不能爲我終生弄清楚如何運行它。junit並從命令行運行硒測試
要管理編譯代碼,我用 - classpath .:/usr/share/junit4/lib/junit.jar:/usr/local/share/selenium-2.45.0/selenium-java-2.45.0.jar
這似乎加載所需和編譯所有。 測試腳本它自我:
import java.util.concurrent.TimeUnit;
import junit.framework.TestCase;
import org.junit.*;
import org.openqa.selenium.*;
import org.openqa.selenium.chrome.ChromeDriver;
public class Test1 extends TestCase {
private WebDriver driver;
private String baseUrl;
@Before
public void setUp() throws Exception {
// Download chromedriver (http://code.google.com/p/chromedriver/downloads/list)
System.setProperty("webdriver.chrome.driver", "/usr/sbin/chromedriver");
driver = new ChromeDriver();
baseUrl = "https://www.google.co.uk/?gfe_rd=cr&ei=E4syVcSOK-jN7AbK0YH4Dg&gws_rd=ssl#q=Bengt+Bjorkberg";
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
}
@Test
public void test() throws Exception {
driver.get(baseUrl + "/");
driver.findElement(By.name("btnG")).click();
driver.findElement(By.linkText("Ben Bjorkberg | LinkedIn")).click();
driver.findElement(By.linkText("View Ben's Full Profile")).click();
driver.findElement(By.linkText("View Ben's Full Profile")).click();
}
@After
public void tearDown() throws Exception {
driver.quit();
}
}
編譯很好,理論上應該工作。
然後,我創建了以下測試運行:
package de.vogella.junit.first;
import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;
public class MyTestRunner {
public static void main(String[] args) {
Result result = JUnitCore.runClasses(Test1.class);
for (Failure failure : result.getFailures()) {
System.out.println(failure.toString());
}
}
但是,如果我跑
javac -classpath .:/usr/share/junit4/lib/junit.jar:/usr/local/share/selenium-2.45.0/selenium-java-2.45.0.jar MyTestRunner.java
在這一點上,我得到
MyTestRunner.java:10: error: cannot find symbol
Result result = JUnitCore.runClasses(Test1.class);
^
symbol: class Test1
location: class MyTestRunner
1 error
任何提示嗎?
爲什麼你甚至需要'MyTestRunner'?難道你不能只使用'JUnitCore'作爲主類,並且通過'de.vogella.junit.first.Test1'作爲第一個參數嗎?另外,你可以在'Test.java'中包含package語句並描述你的目錄結構嗎? – NamshubWriter
順便說一句,JUnit4風格的測試不應該直接或間接地擴展'junit.framework.TestCase'。如果你這樣做,有可能你的'@ Before'和'@ After'方法不會被調用。如果你想在你的測試中使用斷言,你可以從'org.junit.Assert'靜態導入方法 – NamshubWriter