كيفية استرداد خصائص مخضرم داخل اختبار أداة JUnit؟

StackOverflow https://stackoverflow.com/questions/247346

  •  05-07-2019
  •  | 
  •  

سؤال

وأنا أكتب اختبار لفئة محلل ملف. طريقة تحليل يتلقى اسم ملف كمعلمة، ويجب فتحه من أجل تحليل ذلك (دوه).

ولقد writen ملف اختبار، التي وضعت في الدليل اختبار / الموارد داخل دليل مشروعي، وأود أن تمرير هذا الملف لاختبار بلدي تحليل. وبما أن هذا المشروع هو في CVS، وسيتم التلاعب بها من قبل الآخرين، لا أستطيع الصعب رمز مسار الملف، لذلك فكرت في استخدام الخاصية مخضرم $ {basedir} لبناء اسم الملف في اختباري. شيء من هذا القبيل:

public void parseTest() {
    ...
    sut.parse( ${basedir} + "src/test/resources/testFile" );
    ...
}

هل هناك من يعرف كيف يمكن أن تحقيق ذلك؟

هل كانت مفيدة؟

المحلول

لديك 2 خيارات:

1) تمرير مسار الملف إلى اختبار عن طريق خاصية نظام (<لأ href = "http://maven.apache.org/plugins/maven-surefire-plugin/examples/system-properties.html" يختلط = "noreferrer"> مستندات )

في بوم الخاص بك هل يمكن أن تفعل شيئا مثل:

<project>
  [...]
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.4.2</version>
        <configuration>
          <systemProperties>
            <property>
              <name>filePath</name>
              <value>/path/to/the/file</value>
            </property>
          </systemProperties>
        </configuration>
      </plugin>
    </plugins>
  </build>
  [...]
</project>

وبعد ذلك في الاختبار يمكنك القيام به:

System.getProperty("filePath");

2) ضع الملف داخل SRC / اختبار / الموارد في إطار نفس المجموعة من الطبقة الاختبار. ثم يمكنك الحصول على الملف باستخدام Class.getResourceAsStream (سلسلة اسم الملف) (<لأ href = "http://java.sun.com/javase/6/docs/api/java/lang/Class.html#getResourceAsStream(java .lang.String) "يختلط =" noreferrer "> مستندات ).

وسأكون في غاية يوصي الخيار 2 على خيار 1. الأشياء فاة لاختبارات عن طريق خصائص النظام هو قذرة جدا IMO. ومن الأزواج الاختبارات الخاصة بك دون داع إلى عداء اختبار وسوف يسبب الصداع على الطريق. تحميل ملف قبالة CLASSPATH هو الطريق للذهاب وهذا هو السبب مخضرم لديه مفهوم دليل الموارد.

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