Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Некая проблема с кодировкой в maven


(Tolian) #1

написал тесты webdriver+testng

при запуске через eclipse(run as->testng suite) тесты проходят нормально

все файлы в проекте с кодировкой utf-8

но при запуске через maven(pom.xml) тесты валяться, вот сравнение текста

Assert.assertEquals(loginPage.textInfoAboutRegistration.getText(),“После регистрации вам будет предоставлен бесплатный тестовый доступ на 1 месяц.”);

и сообщение из консоли

FAILED: testInfoAboutRegistration
java.lang.AssertionError: expected [ После регистрации вам будет предоставлен бесплатный тестовый доступ на 1 месяц.] but found [ ����� ����������� ��� ����� ������������ ���������� �������� ������ �� 1 �����.]

з.ы. собственно с горя и от безысходности я пытался дописывать в свой pom.xml UTF-8 не помогло

<plugins>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
      <source>1.7</source>
      <target>1.7</target>
      <outputEncoding>UTF-8</outputEncoding>
    </configuration>
  </plugin>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <inherited>true</inherited>
    <configuration>
    <suiteXmlFiles>
    <suiteXmlFile>Login and registration.xml</suiteXmlFile>
    </suiteXmlFiles>
   <outputEncoding>UTF-8</outputEncoding>
    </configuration>
  </plugin>
</plugins>

ПОМОГИТЕ МНЕ ;(


Параллельный запуск тестов TestNG, Maven
(Александр Таранков) #2

Вот эту настройку попробуйте: http://maven.apache.org/general.html#encoding-warning


(Tolian) #3

спасибо это помогло отчасти, методы Assert.assertEquals() отрабатываться правильно

по после того как я стал добавлять в свой pom.xml *.xml другие свои конфигурационные testng то столкнулся с проблемой что у меня попадались локаторы у который была завязка на contains(.,‘некий текст’) дак вот по таким локаторам не могло найти элементы(как бы сам сайт видать написан на Cp1251 увы у фронта возможности на выходных спросить нет) пришлось перегнать свой проект Cp1251 и теперь все работает нормально

немного побило кирилицу в java проекте, но пока на начальной стадии то это не страшно

огромное спасибо

надеюсь мои потуги помогут такому же начинающему если он столкнется с такой же проблемой


(Alex) #4

Похожая проблема, но у меня с ресурсами, вот мой pom:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>maven_Framework</groupId>
  <artifactId>maven_Framework</artifactId>
  <version>0.0.1</version>
   <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.1</version>
        <configuration>
          <source>1.7</source>
          <target>1.7</target>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
  		<artifactId>maven-surefire-plugin</artifactId>
  		<version>2.17</version>
  		 <configuration>
          <workingDirectory>${project.build.directory}src/test/java</workingDirectory>
         <basedir>${project.build.directory}</basedir>
        </configuration>
      </plugin>
      <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
    <configuration>
         <encoding>UTF-8</encoding>
    </configuration>
</plugin>
    </plugins>
  </build>
  <dependencies>
   <dependency>
  	<groupId>junit</groupId>
  	<artifactId>junit</artifactId>
  	<version>4.11</version>
  </dependency>
   <dependency>
   	<groupId>org.seleniumhq.selenium</groupId>
   	<artifactId>selenium-java</artifactId>
   	<version>2.41.0</version>
   </dependency>
  </dependencies>
 </project>

Как только дело доходит до ресурсов:

Running com.sl.test.FunctionalTest
java.io.FileNotFoundException: src\main\resources\ArrayTextCfg (������� �� ������� ����� ��������� ����)
	at java.io.FileInputStream.open(Native Method)
	at java.io.FileInputStream.<init>(Unknown Source)
	at java.io.FileInputStream.<init>(Unknown Source)
	at java.io.FileReader.<init>(Unknown Source)
	at com.sl.utils.EditSettings.readMenu(EditSettings.java:18)
	at com.elements.pages.ArrayAllElements.ArrayFields(ArrayAllElements.java:1796)
	at com.sl.utils.Card.editCardFields(Card.java:62)
	at com.sl.test.FunctionalTest.promo(FunctionalTest.java:37)

.............

at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)
	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:124)
	at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:200)
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:153)
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
CheckboxFewUser[���]
java.io.FileNotFoundException: src\main\resources\ArrayTextCfg (������� �� ������� ����� ��������� ����)
	at java.io.FileInputStream.open(Native Method)
	at java.io.FileInputStream.<init>(Unknown Source)
	at java.io.FileInputStream.<init>(Unknown Source)

.............

Кодировка в eclipse стоит UTF-8. Помогите пожалуйста решить проблему.


(Александр Таранков) #5

При чём тут кодировка в maven, если мавен ругается на java.io.FileNotFoundException: src\main\resources\ArrayTextCfg ?
То, что идёт далее в скобках - это проблема кодировки консоли, в которую пишется лог


(Alex) #6

Извините за предыдущий вопрос, так как я вчера сталкивался с проблемами кодировки и проводил эксперементы по ее устранению, то случайно указал путь в POM другой, поэтому выше изложенный вопрос не актуален, т.к сборка не правильная.

Вообще проблема была в том, что в коде у меня была кирилица и при запуске тестов, у меня в консоли все показывалось вот таким образом:

Running com.sl.test.FunctionalTest
CheckboxFewUser[���]
CheckboxFewUser[���]
CheckboxFewUser[���]
CheckboxFewUser[���]
CheckboxFewUser[���]

проблему решила строка (-Dfile.encoding=UTF-8) добавленная к плагину surefire

POM.xml:

...

 <groupId>org.apache.maven.plugins</groupId>
  		<artifactId>maven-surefire-plugin</artifactId>
  		<version>2.17</version>
  		<configuration>
        <argLine>-Dfile.encoding=UTF-8</argLine>
      </configuration>
...