2016-08-01 12 views
6

मैं एकीकरण परीक्षण स्पार्क के लिए मेवेन पर scalatest और spark-testing-base का उपयोग करने का प्रयास कर रहा हूं। स्पार्क जॉब एक ​​CSV फ़ाइल में पढ़ता है, परिणामों को मान्य करता है, और डेटा को डेटाबेस में सम्मिलित करता है। मैं ज्ञात प्रारूप की फ़ाइलों को डालकर और यह देखकर सत्यापन कर रहा हूं कि वे कैसे और कैसे विफल हो जाते हैं। यह विशेष परीक्षण सिर्फ यह सुनिश्चित करता है कि सत्यापन पास हो जाए। दुर्भाग्यवश, स्केलटेस्ट मेरे परीक्षण नहीं ढूंढ सकता है।स्केलेटेस्ट मेवेन प्लगइन "कोई परीक्षण निष्पादित नहीं किया गया"

प्रासंगिक पोम प्लगइन्स:

और यहाँ परीक्षण वर्ग है:

class ProficiencySchemaITest extends FlatSpec with Matchers with SharedSparkContext with BeforeAndAfter { 
    private var schemaStrategy: SchemaStrategy = _ 
    private var dataReader: DataFrameReader = _ 

    before { 
     val sqlContext = new SQLContext(sc) 
     import sqlContext._ 
     import sqlContext.implicits._ 

     val dataInReader = sqlContext.read.format("com.databricks.spark.csv") 
              .option("header", "true") 
              .option("nullValue", "") 
     schemaStrategy = SchemaStrategyChooser("dim_state_test_proficiency") 
     dataReader = schemaStrategy.applySchema(dataInReader) 
    } 

    "Proficiency Validation" should "pass with the CSV file proficiency-valid.csv" in { 
     val dataIn = dataReader.load("src/test/resources/proficiency-valid.csv") 

     val valid: Try[DataFrame] = Try(schemaStrategy.validateCsv(dataIn)) 
     valid match { 
      case Success(v) =>() 
      case Failure(e) => fail("Validation failed on what should have been a clean file: ", e) 
     } 
    } 
} 

जब मैं mvn test चलाने के लिए, यह किसी भी परीक्षण और आउटपुट इस संदेश को नहीं मिल रहा है:

[INFO] --- scalatest-maven-plugin:1.0:test (test) @ load-csv-into-db --- 
[36mDiscovery starting.[0m 
[36mDiscovery completed in 54 milliseconds.[0m 
[36mRun starting. Expected test count is: 0[0m 
[32mDiscoverySuite:[0m 
[36mRun completed in 133 milliseconds.[0m 
[36mTotal number of tests run: 0[0m 
[36mSuites: completed 1, aborted 0[0m 
[36mTests: succeeded 0, failed 0, canceled 0, ignored 0, pending 0[0m 
[33mNo tests were executed.[0m 

अद्यतन
का उपयोग करके:

<suites>com.cainc.data.etl.schema.proficiency.ProficiencySchemaITest</suites> 

बजाय:

<wildcardSuites>com.cainc.data.etl.schema.proficiency</wildcardSuites> 

मुझे लगता है कि एक टेस्ट चलाने के लिए मिल सकता है। जाहिर है, यह आदर्श नहीं है। यह संभव वाइल्डकार्ड सूट टूटा हुआ है; मैं गिटहब पर टिकट खोलने जा रहा हूं और देख रहा हूं कि क्या होता है।

+0

'ProficiencySchemaITest' कहां स्थित है? – hasumedic

+0

src/test/scala/com/cainc/data/etl/schema/दक्षता/प्रवीणता SchemaITest.scala। मैं अपने पोम में क्या है: src/मुख्य/स्केला \t \t src/परीक्षण/स्केला Azuaron

+0

मैं भी में '' 'लक्ष्य /' '' देख सकते हैं कि ''class'' फाइलें बनाई गई थीं। – Azuaron

उत्तर

2

ऐसा शायद इसलिए है क्योंकि प्रोजेक्ट पथ में कुछ स्पेस वर्ण हैं। प्रोजेक्ट पथ में स्थान निकालें और परीक्षणों को सफलतापूर्वक खोजा जा सकता है। इस सहायता की आशा करें।

+0

पूर्ण पथ: सी: \ dev \ projects \ nintendo \ spark-data-load \ src \ main \ blah \ blah \ blah – Azuaron

+0

प्रोजेक्ट पथ में रिक्त स्थान के साथ समस्या इस पीआर में तय की जानी चाहिए: https: // github। com/scalatest/scalatest-Maven-प्लगइन/पुल/37 – cstroe

0

जूनिट को एक पारगम्य निर्भरता के रूप में छोड़कर देखें। मेरे लिये कार्य करता है। नीचे उदाहरण, लेकिन ध्यान दें कि स्कैला और स्पार्क संस्करण मेरे पर्यावरण के लिए विशिष्ट हैं।

<dependency> 
     <groupId>com.holdenkarau</groupId> 
     <artifactId>spark-testing-base_2.10</artifactId> 
     <version>1.5.0_0.6.0</version> 
     <scope>test</scope> 
     <exclusions> 
      <!-- junit is not compatible with scalatest --> 
      <exclusion> 
       <groupId>junit</groupId> 
       <artifactId>junit</artifactId> 
      </exclusion> 
     </exclusion> 
    </dependency> 
संबंधित मुद्दे

 संबंधित मुद्दे