AssertionError的IDEA输出中的字符编码

时间:2013-04-18 11:25:52

标签: character-encoding intellij-idea testng junit4

我正在使用IntelliJ IDEA 12.0.4。 做一些测试。当我使用JUnit4框架运行时,我的Assertion Error看起来像:

java.lang.AssertionError: Status should be: Черновик expected [true] but found [false]

如果我正在使用TestNG,它看起来像这样:

java.lang.AssertionError: Status should be: Черновик expected [true] but found [false]

所有其他西里尔语输出在两个框架上都能正常工作,只有断言文本不会。

项目文件编码设置为UTF-8。

更新 例如简单的WebDriver测试。我使用TestNG和IE。

import org.testng.Assert;
import org.testng.annotations.AfterSuite;
import org.testng.annotations.BeforeSuite;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;

import java.util.concurrent.TimeUnit;


public class SeleniumExample  {

    protected WebDriver driver;
    protected String baseUrl;

    @BeforeSuite
    public void setUp() throws Exception
    {

        /* Local Driver  */
        driver = new InternetExplorerDriver();
        baseUrl = "http://www.google.com";
        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
    }

    @DataProvider
    public Object[][] TestData() {
        return new Object[][]{
                {"Гугл"},
        };
    }

    @Test(description = "Create_InvestProjectRequest", dataProvider = "TestData")
    public void Test(String s) {

        driver.get(baseUrl);

        Assert.assertTrue(driver.getTitle().contains(s), "Ошибка");
    }

    @AfterSuite
    public void tearDown() throws Exception {
        driver.quit();
    }
}

在测试结果输出中,我看到:

java.lang.AssertionError:Ошибка 预期:是的 实际:错误

另一个问题是,如果我在DataProvider中使用西里尔文,那么在测试树中我看到Test(“ОшД)而不是Test(“Гугл”)

1 个答案:

答案 0 :(得分:2)

这是一个known bug,将在下次更新中修复,感谢您的项目帮助我们跟踪它。

目前的解决方法是修改.vmoptions file并添加-Dfile.encoding=UTF-8选项。