سؤال

ونحن استخدام سطر الأوامر لتمرير خصائص النظام إلى جافا الجهاز الظاهري عند تشغيل لدينا هدسون يبني على مربع لينكس. تستخدم للعمل بشكل جيد جدا في 2.0.9 من قبل لأننا ترقية إلى 2.1.0 لديها توقفت عن العمل تماما. خصائص النظام فقط لا تجعل من إلى آلة جافا الافتراضية.

ولقد خلق مشروع اختبار صغير والواقع أنه لا يعمل على الإطلاق.

وهذا يجب أن تعمل على ما يرام مع مخضرم 2.0.9:

mvn2.0.9 -Dsystem.test.property=test test 

ولكن هذا ستفشل:

mvn2.1 -Dsystem.test.property=test test 

وكود جافا ببساطة يفعل ذلك

assertTrue( System.getProperty("system.test.property") != null); 
هل كانت مفيدة؟

المحلول

وأنا لا أعتقد أن هذا هو المشكلة في أي مخضرم أو سوريفيري في المكونات. وإلا فإن مؤكدة النجاح يتصرف بشكل مختلف. يبدو الآن، عندما الشوك سوريفيري على JVM ، لن تأخذ جميع خصائص النظام من الوالد JVM.

وهذا هو السبب يجب عليك أن تمر مهما خصائص النظام الذي تريد للاختبارات، وذلك باستخدام argLine. لذلك، كل هذه يجب أن تعمل

mvn2.1 -Dsystem.test.property=test test -DforkMode=never 

أو

mvn2.1 test -DargLine="-Dsystem.test.property=test"

نصائح أخرى

ولقد شهدت هذه مع مؤكدة النجاح في المكونات. يتم تشغيل المكونات في سوريفيري تحت مثيل JVM مختلفة التي أطلقها مخضرم. وبارامس سطر الأوامر شكلي تحت التكوين surefile البرنامج المساعد في pom.xml الخاص بك. وفيما يلي عينة من تكوين لدينا.

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.4.3</version>
            <!--
                    By default, the Surefire Plugin will automatically include all test classes with the following wildcard patterns:
                    "**/Test*.java" - includes all of its subdirectory and all java filenames that start with "Test". "**/*Test.java" -
                    includes all of its subdirectory and all java filenames that end with "Test". "**/*TestCase.java" - includes all of
                    its subdirectory and all java filenames that end with "TestCase".
                -->
            <configuration>
                <includes>
                    <include>**/*Test.java</include>
                </includes>
                <systemProperties>
                    <property>
                        <name>app.env</name>
                        <value>dev</value>
                    </property>
                     <property>
                        <name>oracle.net.tns_admin</name>
                        <value>${oracle.net.tns_admin}</value>
                    </property>
                </systemProperties>
            </configuration>
        </plugin>

كن حذرا حتى لا تخلط ملف التكوين مع وسائط سطر الأوامر. ملف التكوين (pom.xml) يتم تجاوز كل الحجج كمد. لذلك لم يتم تكوين المساعد مؤكدة النجاح داخل pom.xml إذا كنت تريد أن تمر عليه الفكر سطر الأوامر مثل شرح raisercostin.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top