постоянно вылетает в переделаном под мавен проекте


#1

Добрый день
сделал с простого проекта мавен начинаю запускать тест и вылетает

org.testng.TestNGException: 
Cannot instantiate class PAGE_Registration.Test_Page_Registration_002_Img_Header_Congratulations_ENG
    at org.testng.internal.ObjectFactoryImpl.newInstance(ObjectFactoryImpl.java:40)
    at org.testng.internal.ClassHelper.createInstance1(ClassHelper.java:389)
    at org.testng.internal.ClassHelper.createInstance(ClassHelper.java:302)
    at org.testng.internal.ClassImpl.getDefaultInstance(ClassImpl.java:118)
    at org.testng.internal.ClassImpl.getInstances(ClassImpl.java:183)
    at org.testng.internal.TestNGClassFinder.<init>(TestNGClassFinder.java:128)
    at org.testng.TestRunner.initMethods(TestRunner.java:413)
    at org.testng.TestRunner.init(TestRunner.java:239)
    at org.testng.TestRunner.init(TestRunner.java:209)
    at org.testng.TestRunner.<init>(TestRunner.java:164)
    at org.testng.remote.RemoteTestNG$1.newTestRunner(RemoteTestNG.java:142)
    at org.testng.remote.RemoteTestNG$DelegatingTestRunnerFactory.newTestRunner(RemoteTestNG.java:271)
    at org.testng.SuiteRunner$ProxyTestRunnerFactory.newTestRunner(SuiteRunner.java:584)
    at org.testng.SuiteRunner.init(SuiteRunner.java:159)
    at org.testng.SuiteRunner.<init>(SuiteRunner.java:113)
    at org.testng.TestNG.createSuiteRunner(TestNG.java:1274)
    at org.testng.TestNG.createSuiteRunners(TestNG.java:1261)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:1115)
    at org.testng.TestNG.run(TestNG.java:1032)
    at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:111)
    at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:204)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:175)
    at org.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:125)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
    at org.testng.internal.ObjectFactoryImpl.newInstance(ObjectFactoryImpl.java:29)
    ... 27 more
Caused by: java.lang.NullPointerException
    at java.util.Properties$LineReader.readLine(Properties.java:434)
    at java.util.Properties.load0(Properties.java:353)
    at java.util.Properties.load(Properties.java:341)
    at property.util.Util_Property_Loader.loadProperty(Util_Property_Loader.java:12)
    at logic.work.Application.<init>(Application.java:25)
    at logic.init.Initialize.<init>(Initialize.java:20)
    at PAGE_Registration.Test_Page_Registration_002_Img_Header_Congratulations_ENG.<init>(Test_Page_Registration_002_Img_Header_Congratulations_ENG.java:9)
    ... 32 more

не понимаю в чем дело идеешка импорты красным не подчеркивает


(James May) #2

скорее всего здесь

Test_Page_Registration_002_Img_Header_Congratulations_ENG.<init>(Test_Page_Registration_002_Img_Header_Congratulations_ENG.java:9)

вы что-то делаете, не инициализировав при этом используемую переменную

В идеале покажите код


(Sergey Korol) #3

А вы тесты как запускаете?
Ну и судя по NPE при загрузке пропертей, возможно они у вас не попали в classpath, что говорит о проблемах в структуре или конфигурации pom.xml.

П.С. И если что, как правило, за полученные советы (особенно, если они показались вам полезными), в культурном обществе говорят “спасибо”, хотя бы за потраченное на вас время. :wink: Смотрю на ваши темы - все принимается, как должное. Не удивлюсь, если вскоре с таким подходом ответов может и не быть вовсе.

Как ставятся отметки “нравится” и “решено”.


#4

какой именно код ?


#5

если через команду

mvn test

тогда выдает

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.18.1:test (default-test) on project MavenProjectGoAntifraud: Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.18.1:test failed: There was an error in
the forked process
[ERROR] org.apache.maven.surefire.testset.TestSetFailedException: Suite file D:\GoAntiFraudMavenProject\resources\prod_website_001___LINKS.xml is not a valid file
[ERROR] at org.apache.maven.surefire.testng.TestNGXmlTestSuite.locateTestSets(TestNGXmlTestSuite.java:116)
[ERROR] at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:83)
[ERROR] at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:203)
[ERROR] at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155)
[ERROR] at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
[ERROR] -> [Help 1]

(Sergey Korol) #6

pom.xml и сам suite в студию :wink:


#7

Вот пом

<?xml version="1.0" encoding="UTF-8"?>
<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>MavenProjectGoAntifraud</groupId>
    <artifactId>MavenProjectGoAntifraud</artifactId>
    <version>1.0-SNAPSHOT</version>




    <dependencies>

        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>6.9.4</version>
        </dependency>

        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>2.43.0</version>
        </dependency>

        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>

        <dependency>
            <groupId>com.opera</groupId>
            <artifactId>operadriver</artifactId>
            <version>1.5</version>
        </dependency>

        <dependency>
            <groupId>com.github.detro.ghostdriver</groupId>
            <artifactId>phantomjsdriver</artifactId>
            <version>1.1.0</version>
            <exclusions>
                <exclusion>
                    <groupId>org.seleniumhq.selenium</groupId>
                    <artifactId>selenium-remote-driver</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.seleniumhq.selenium</groupId>
                    <artifactId>selenium-server</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>3.11</version>
        </dependency>


    </dependencies>

    <build>

        <resources>
            <resource>
                <directory>resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>

        <plugins>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>2.7</version>
                <configuration>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>

            <plugin>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.18.1</version>
                <configuration>
                    <suiteXmlFiles>
                        <suiteXmlFile>/resources/testng.xml</suiteXmlFile>
                    </suiteXmlFiles>
                </configuration>
            </plugin>

            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                </configuration>
            </plugin>





        </plugins>




    </build>


    <!-- profiles -->
    <profiles>

    <!-- CHROME PRODUCTION CHECK WebSite LINKS -->
    <profile>
        <id>chrome_prod_website_001___LINKS</id>
        <properties>
            <env>local</env>
            <user.username></user.username>
            <user.password></user.password>
            <grid2.hub></grid2.hub>
            <site.url>https://goantifraud.com/</site.url>
            <browser.name>chrome</browser.name>
            <browser.version></browser.version>
            <browser.platform></browser.platform>


            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

        </properties>

        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>

        <build>

            <resources>
                <resource>
                    <directory>resources</directory>
                    <filtering>true</filtering>
                </resource>
            </resources>

            <plugins>


                <plugin>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.18.1</version>
                    <configuration>
                        <suiteXmlFiles>
                            <suiteXmlFile>resources/prod_website_001___LINKS.xml</suiteXmlFile>
                        </suiteXmlFiles>
                    </configuration>
                </plugin>


            </plugins>

        </build>

    </profile>


    <!-- CHROME PRODUCTION SMOKE TEST -->

    <profile>
        <id>chrome_prod_service_001___SMOKE</id>
        <properties>
            <env>local</env>
            <user.username></user.username>
            <user.password></user.password>
            <grid2.hub></grid2.hub>
            <site.url>https://goantifraud.com/</site.url>
            <browser.name>chrome</browser.name>
            <browser.version></browser.version>
            <browser.platform></browser.platform>
        </properties>


        <build>

            <resources>
                <resource>
                    <directory>resources</directory>
                    <filtering>true</filtering>
                </resource>
            </resources>

            <plugins>


                <plugin>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.18.1</version>
                    <configuration>
                        <suiteXmlFiles>
                            <suiteXmlFile>resources/prod_service_001___SMOKE.xml</suiteXmlFile>
                        </suiteXmlFiles>
                    </configuration>
                </plugin>


            </plugins>

        </build>

    </profile>

#8

testng.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite">

    <parameter name="path" value="/"/>

    <test name="Test">
        <classes>

            <class name="SMOKE_TEST_BY_STEP.SM_03_Delete_All"/>
            <class name="SMOKE_TEST_BY_STEP.SM_05_Login"/>
            <class name="SMOKE_TEST_BY_STEP.SM_06_Tab_Log_Set_Row_Number"/>
            <class name="SMOKE_TEST_BY_STEP.SM_07_Location_Add"/>
            <class name="SMOKE_TEST_BY_STEP.SM_08_Gateway_Add"/>
            <class name="SMOKE_TEST_BY_STEP.SM_09_SIM_Bank_Add"/>
            <class name="SMOKE_TEST_BY_STEP.SM_10_Carriers_Add"/>
            <class name="SMOKE_TEST_BY_STEP.SM_11_Tariffs_Add"/>
            <class name="SMOKE_TEST_BY_STEP.SM_12_Tariffs_Limit_Add"/>
            <class name="SMOKE_TEST_BY_STEP.SM_13_Color_Add"/>
            <class name="SMOKE_TEST_BY_STEP.SM_14_Tab_SIM_View"/>
            <class name="SMOKE_TEST_BY_STEP.SM_15_Tab_Channel_View"/>
            <class name="SMOKE_TEST_BY_STEP.SM_16_Tab_SIM_Set_Color"/>
            <class name="SMOKE_TEST_BY_STEP.SM_17_Tab_Channel_Set_Color"/>
            <class name="SMOKE_TEST_BY_STEP.SM_18_SIM_Options_Set_Pin_And_Get_ScreenShot"/>


        </classes>
    </test>
    <!-- Test -->
</suite> <!-- Suite -->

(Sergey Korol) #9
Suite file D:\GoAntiFraudMavenProject\resources\prod_website_001___LINKS.xml is not a valid file
<suiteXmlFiles>
    <suiteXmlFile>resources/prod_website_001___LINKS.xml</suiteXmlFile>
</suiteXmlFiles>

Сами догадаетесь или подсказать?

Начнем с маленькой подсказки: у вас ресурсы физически где лежат? Ответив себе на этот вопрос, и сопоставив с ошибкой, вы сможете предположить, относительно чего был сформирован путь к xml, и что нужно исправить, чтобы maven-surefire-plugin его корректно определял. :wink:


#10

Зараниее говорю спасибо что мне лошаре помогаете. ресурсы у меня лежат в папке src/main/resources как мне сделал интелидж идее. Но я сейчас не понимаю относительно чего плагин начинает отсчет. я думал относительно папки мейн или я не прав ?? или мне папку ресурсы нужно закинуть в раздел тест ??? потому что когда я делал проект в эклипс у меня он создал структуру мавен проекта которая отличалась от структуры мавен проекта в интелидж идее
я так понимаю я должен изменить первое

<build>

    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
        </resource>
    </resources>

теперь у меня отсчет идет от папки сорс

дальше я изменяю вот так

<plugin>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.18.1</version>
    <configuration>
        <suiteXmlFiles>
            <suiteXmlFile>testng.xml</suiteXmlFile>
        </suiteXmlFiles>
    </configuration>
</plugin>

то есть путь к папке я прописал уже выше ??


#11

В общем ситуация такая после того как я внес данные изменения и провел операции mvn clean -> mvn validate->mvn compile-> mvn -e test выдало такой эрор

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.18.1:test (default-test) on project MavenProjectGoAntifraud: Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.18.1:test failed: There was an error in
the forked process
[ERROR] org.apache.maven.surefire.testset.TestSetFailedException: Suite file D:\GoAntiFraudMavenProject\resources\prod_website_001___LINKS.xml is not a valid file
[ERROR] at org.apache.maven.surefire.testng.TestNGXmlTestSuite.locateTestSets(TestNGXmlTestSuite.java:116)
[ERROR] at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:83)
[ERROR] at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:203)
[ERROR] at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155)
[ERROR] at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
[ERROR] -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.18.1:test (default-test) on project MavenProjectGoAntifraud: Execution default-test of goal org.apache.maven.plugins:maven-surefire-p
lugin:2.18.1:test failed: There was an error in the forked process
org.apache.maven.surefire.testset.TestSetFailedException: Suite file D:\GoAntiFraudMavenProject\resources\prod_website_001___LINKS.xml is not a valid file
        at org.apache.maven.surefire.testng.TestNGXmlTestSuite.locateTestSets(TestNGXmlTestSuite.java:116)
        at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:83)
        at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:203)
        at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155)
        at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)

        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:224)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
        at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
        at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
        at org.apache.maven.cli.MavenCli.execute(MavenCli.java:862)
        at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:286)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:197)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
        at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
        at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: org.apache.maven.plugin.PluginExecutionException: Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.18.1:test failed: There was an error in the forked process
org.apache.maven.surefire.testset.TestSetFailedException: Suite file D:\GoAntiFraudMavenProject\resources\prod_website_001___LINKS.xml is not a valid file
        at org.apache.maven.surefire.testng.TestNGXmlTestSuite.locateTestSets(TestNGXmlTestSuite.java:116)
        at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:83)
        at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:203)
        at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155)
        at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)

        at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:145)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
        ... 20 more
Caused by: java.lang.RuntimeException: There was an error in the forked process
org.apache.maven.surefire.testset.TestSetFailedException: Suite file D:\GoAntiFraudMavenProject\resources\prod_website_001___LINKS.xml is not a valid file
        at org.apache.maven.surefire.testng.TestNGXmlTestSuite.locateTestSets(TestNGXmlTestSuite.java:116)
        at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:83)
        at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:203)
        at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155)
        at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)

        at org.apache.maven.plugin.surefire.booterclient.ForkStarter.fork(ForkStarter.java:509)
        at org.apache.maven.plugin.surefire.booterclient.ForkStarter.fork(ForkStarter.java:380)
        at org.apache.maven.plugin.surefire.booterclient.ForkStarter.run(ForkStarter.java:167)
        at org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeProvider(AbstractSurefireMojo.java:990)
        at org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeAfterPreconditionsChecked(AbstractSurefireMojo.java:824)
        at org.apache.maven.plugin.surefire.AbstractSurefireMojo.execute(AbstractSurefireMojo.java:722)
        at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
        ... 21 more

если же я пытаюсь запустить отдельно тест через ран тест то тогда Cannot instantiate class

SMOKE_TEST_CHECK_LINK.SM_01_Test_Check_Link_By_Site_Map_XML
    at org.testng.internal.ObjectFactoryImpl.newInstance(ObjectFactoryImpl.java:40)
    at org.testng.internal.ClassHelper.createInstance1(ClassHelper.java:389)
    at org.testng.internal.ClassHelper.createInstance(ClassHelper.java:302)
    at org.testng.internal.ClassImpl.getDefaultInstance(ClassImpl.java:118)
    at org.testng.internal.ClassImpl.getInstances(ClassImpl.java:183)
    at org.testng.internal.TestNGClassFinder.<init>(TestNGClassFinder.java:128)
    at org.testng.TestRunner.initMethods(TestRunner.java:413)
    at org.testng.TestRunner.init(TestRunner.java:239)
    at org.testng.TestRunner.init(TestRunner.java:209)
    at org.testng.TestRunner.<init>(TestRunner.java:164)
    at org.testng.remote.RemoteTestNG$1.newTestRunner(RemoteTestNG.java:142)
    at org.testng.remote.RemoteTestNG$DelegatingTestRunnerFactory.newTestRunner(RemoteTestNG.java:271)
    at org.testng.SuiteRunner$ProxyTestRunnerFactory.newTestRunner(SuiteRunner.java:584)
    at org.testng.SuiteRunner.init(SuiteRunner.java:159)
    at org.testng.SuiteRunner.<init>(SuiteRunner.java:113)
    at org.testng.TestNG.createSuiteRunner(TestNG.java:1274)
    at org.testng.TestNG.createSuiteRunners(TestNG.java:1261)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:1115)
    at org.testng.TestNG.run(TestNG.java:1032)
    at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:111)
    at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:204)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:175)
    at org.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:125)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
    at org.testng.internal.ObjectFactoryImpl.newInstance(ObjectFactoryImpl.java:29)
    ... 27 more
Caused by: java.lang.NullPointerException
    at java.util.Properties$LineReader.readLine(Properties.java:434)
    at java.util.Properties.load0(Properties.java:353)
    at java.util.Properties.load(Properties.java:341)
    at property.util.Util_Property_Loader.loadProperty(Util_Property_Loader.java:12)
    at logic.work.Application.<init>(Application.java:25)
    at logic.init.Initialize.<init>(Initialize.java:20)
    at SMOKE_TEST_CHECK_LINK.SM_01_Test_Check_Link_By_Site_Map_XML.<init>(SM_01_Test_Check_Link_By_Site_Map_XML.java:10)
    ... 32 more

(Sergey Korol) #12

Ладно, не буду мучать. К сожалению, очень часто в последнее время приходится кидать ссылку на стандартную структуру maven проекта.

Итак, если внимательно присмотреться, ресурсы у нас бывают двух типов: main и test.
Немного поразмыслив, можно догадаться, что testng.xml все же относится к тестовым ресурсам, а не основному коду.

По дефолту идея действительно не создает тестовых ресурсов, посему нам нужно сделать это самостоятельно. Причем, данный фолдер еще придется отмаркировать.

Тем не менее, проделав данную операцию, вы все равно будете получать exception. Да что ж такое?
А получать вы его будете ровно до тех пор, пока не приведете в порядок ваш pom.xml, где maven-surefire-plugin переопределяется в кастомном профайле, который еще и, к слову, активируется по дефолту:

        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>

Но и это не все… Из моей предыдущей подсказки следует вот что:

D:\GoAntiFraudMavenProject\resources\prod_website_001___LINKS.xml
<suiteXmlFile>resources/prod_website_001___LINKS.xml</suiteXmlFile>

maven-surefire-plugin обрабатывает заданный путь относительно рута проекта. Т.к. resources у вас находится явно не в руте, а (учитывая предыдущий фикс) в src/test, то все, что от вас требовалось - добавить соответствующий префикс пути:

<suiteXmlFile>src/test/resources/prod_website_001___LINKS.xml</suiteXmlFile>

При этом, и в build секции также нужно явно указать новый каталог ресурсов:

<resources>
    <resource>
        <directory>src/test/resources</directory>
    </resource>
</resources>

Технически конечно вы можете задать любой кастомный путь к ресурсам, но мы ведь хотим соблюдать стандартную структуру, ведь так?

Ну и последнее, что может пригодиться - это включение фильтрации на уровне тестовых ресурсов для последующей возможности переопределения .properties переменными из pom.xml:

<testResources>
    <testResource>
        <directory>src/test/resources</directory>
        <filtering>true</filtering>
    </testResource>
</testResources>

П.С. Не забываем ставить лайк. :wink:


#13

Спасибо что помогаете я сделал как Вы подсказали перенес папку с ресурсами в раздел src/test/resources
сделал новый пом вот что вышло

<?xml version="1.0" encoding="UTF-8"?>
<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>MavenProjectGoAntifraud</groupId>
    <artifactId>MavenProjectGoAntifraud</artifactId>
    <version>1.0-SNAPSHOT</version>




    <dependencies>

        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>6.9.4</version>
        </dependency>

        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>2.43.0</version>
        </dependency>

        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>

        <dependency>
            <groupId>com.opera</groupId>
            <artifactId>operadriver</artifactId>
            <version>1.5</version>
        </dependency>

        <dependency>
            <groupId>com.github.detro.ghostdriver</groupId>
            <artifactId>phantomjsdriver</artifactId>
            <version>1.1.0</version>
            <exclusions>
                <exclusion>
                    <groupId>org.seleniumhq.selenium</groupId>
                    <artifactId>selenium-remote-driver</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.seleniumhq.selenium</groupId>
                    <artifactId>selenium-server</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>3.11</version>
        </dependency>


    </dependencies>

    <build>

        <resources>
            <resource>
                <directory>src/test/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>

        <plugins>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>2.7</version>
                <configuration>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>

            <plugin>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.18.1</version>
                <configuration>
                    <suiteXmlFiles>
                        <suiteXmlFile>src/test/resources/testng.xml</suiteXmlFile>
                    </suiteXmlFiles>
                </configuration>
            </plugin>

            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                </configuration>
            </plugin>





        </plugins>




    </build>


    <!-- profiles -->
    <profiles>

    <!-- CHROME PRODUCTION CHECK WebSite LINKS -->
    <profile>
        <id>chrome_prod_website_001___LINKS</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <properties>
            <env>local</env>
            <user.username></user.username>
            <user.password></user.password>
            <grid2.hub></grid2.hub>
            <site.url>https://goantifraud.com/</site.url>
            <browser.name>chrome</browser.name>
            <browser.version></browser.version>
            <browser.platform></browser.platform>


            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

        </properties>

        <build>

            <resources>
                <resource>
                    <directory>src/test/resources</directory>
                    <filtering>true</filtering>
                </resource>
            </resources>

            <plugins>


                <plugin>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.18.1</version>
                    <configuration>
                        <suiteXmlFiles>
                            <suiteXmlFile>src/test/resources/prod_website_001___LINKS.xml</suiteXmlFile>
                        </suiteXmlFiles>
                    </configuration>
                </plugin>


            </plugins>

        </build>

    </profile>

#14

но теперь у меня летит експшн вида

org.testng.TestNGException: 
Cannot instantiate class SMOKE_TEST_BY_STEP.SM_03_Delete_All_new
    at org.testng.internal.ObjectFactoryImpl.newInstance(ObjectFactoryImpl.java:40)
    at org.testng.internal.ClassHelper.createInstance1(ClassHelper.java:389)
    at org.testng.internal.ClassHelper.createInstance(ClassHelper.java:302)
    at org.testng.internal.ClassImpl.getDefaultInstance(ClassImpl.java:118)
    at org.testng.internal.ClassImpl.getInstances(ClassImpl.java:183)
    at org.testng.internal.TestNGClassFinder.<init>(TestNGClassFinder.java:128)
    at org.testng.TestRunner.initMethods(TestRunner.java:413)
    at org.testng.TestRunner.init(TestRunner.java:239)
    at org.testng.TestRunner.init(TestRunner.java:209)
    at org.testng.TestRunner.<init>(TestRunner.java:164)
    at org.testng.remote.RemoteTestNG$1.newTestRunner(RemoteTestNG.java:142)
    at org.testng.remote.RemoteTestNG$DelegatingTestRunnerFactory.newTestRunner(RemoteTestNG.java:271)
    at org.testng.SuiteRunner$ProxyTestRunnerFactory.newTestRunner(SuiteRunner.java:584)
    at org.testng.SuiteRunner.init(SuiteRunner.java:159)
    at org.testng.SuiteRunner.<init>(SuiteRunner.java:113)
    at org.testng.TestNG.createSuiteRunner(TestNG.java:1274)
    at org.testng.TestNG.createSuiteRunners(TestNG.java:1261)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:1115)
    at org.testng.TestNG.run(TestNG.java:1032)
    at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:111)
    at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:204)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:175)
    at org.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:125)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
    at org.testng.internal.ObjectFactoryImpl.newInstance(ObjectFactoryImpl.java:29)
    ... 27 more
Caused by: java.lang.NullPointerException
    at java.util.Properties$LineReader.readLine(Properties.java:434)
    at java.util.Properties.load0(Properties.java:353)
    at java.util.Properties.load(Properties.java:341)
    at property.util.Util_Property_Loader.loadProperty(Util_Property_Loader.java:12)
    at logic.work.Application.<init>(Application.java:25)
    at logic.init.Initialize.<init>(Initialize.java:20)
    at SMOKE_TEST_BY_STEP.SM_03_Delete_All_new.<init>(SM_03_Delete_All_new.java:10)
    ... 32 more

насколько я понял из-за вот этого куска кода

public class Util_Property_Loader {
    private static final String PROP_FILE = "/application.properties";

    public static String loadProperty(String name) {
        Properties props = new Properties();
        try {
            props.load(Util_Property_Loader.class.getResourceAsStream(PROP_FILE));
        } catch (IOException e) {
            e.printStackTrace();
        }

        String value = "";

        if (name != null) {
            value = props.getProperty(name);
        }
        return value;
    }
}

файл пропертис лежит в папке src/test/resources
дебагер показывает что значения с проперитс берутся но не читаются с профиля то есть осталось понять почему не в проперитис не попадают значения которые я передал в профиле пом файла


(Sergey Korol) #15

Осталось понять, что у вас в пропертях. :wink:
Плюс ко всему, я не зря ведь в последнем абзаце предыдущего поста намекнул на фильтрацию тестовых ресурсов, чтобы иметь возможность сетить переменные из pom.xml в .properties. Тем не менее, в pom вы этот блок не потрудились добавить.


#16

Да спасибо вам последний абзац я добавил в профили и заработало теперь команда mvn test работает исправно , но что меня удивило например

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite">

    <parameter name="path" value="/"/>

    <test name="Test">
        <classes>

            <class name="SMOKE_TEST_BY_STEP.SM_03_Delete_All_new"/>
            <class name="SMOKE_TEST_BY_STEP.SM_05_Login"/>
            <class name="SMOKE_TEST_BY_STEP.SM_06_Tab_Log_Set_Row_Number"/>
            <class name="SMOKE_TEST_BY_STEP.SM_07_Location_Add"/>
            <class name="SMOKE_TEST_BY_STEP.SM_08_Gateway_Add"/>
            <class name="SMOKE_TEST_BY_STEP.SM_09_SIM_Bank_Add"/>
            <class name="SMOKE_TEST_BY_STEP.SM_10_Carriers_Add"/>
            <class name="SMOKE_TEST_BY_STEP.SM_11_Tariffs_Add_New"/>
            <class name="SMOKE_TEST_BY_STEP.SM_20_Add_Options_Tariffs"/>
            <class name="SMOKE_TEST_BY_STEP.SM_24_ADD_Schedule"/>
            <class name="SMOKE_TEST_BY_STEP.SM_21_Tariffs_Limit_Add_new"/>
            <class name="SMOKE_TEST_BY_STEP.SM_13_Color_Add"/>
            <class name="SMOKE_TEST_BY_STEP.SM_22_Tab_SIM_View_new"/>
            <class name="SMOKE_TEST_BY_STEP.SM_23_Tab_Channel_View_new"/>
            <class name="SMOKE_TEST_BY_STEP.SM_16_Tab_SIM_Set_Color"/>
            <class name="SMOKE_TEST_BY_STEP.SM_17_Tab_Channel_Set_Color"/>
            <class name="SMOKE_TEST_BY_STEP.SM_18_SIM_Options_Set_Pin_And_Get_ScreenShot"/>


        </classes>
    </test>
    <!-- Test -->
</suite> 

если раньше запуская этот сюит 1 тест из него падал остальные продолжали выполнятся то теперь когда я запуская из мавен тест если падает 1 тест из сюта все мавен падает тоже странно как-то