通过命令行运行 pyspark 单元测试用例的命令

时间:2021-03-13 16:21:55

标签: unit-testing pyspark apache-spark-sql

我是 pyspark 测试的新手,想测试我的 pyspark 程序。我已经编写了一个示例单元测试用例,但它没有在终端上给我任何输出。

#!/usr/bin/env python3
#
import os, sys, csv, vlc, time, serial
from pynput.keyboard import Key, Listener
#
# Set Defaults
#
DefaultUSBPath="/media/pi"
#
# Declare variables
#
USBDrive = None
Action = None
Playlist = []
SelectionCount = []
Sel_char = None
#
# Find the USB Drive
#
USBDrive =  os.path.join(DefaultUSBPath, "USB30FD")
#
# Adding to playlist - Returns directory contents and adds to playlist
#
def addplaylist(track):
    list = None
    if os.path.isdir(os.path.join(USBDrive, track)):
        files = [f for f in os.listdir(os.path.join(USBDrive, track)) if os.path.isfile(os.path.join(USBDrive, track, f))]
        for f in files:
            if list is None:
                list = os.path.join(USBDrive, track, f)
            else:
                list = list + ";" + os.path.join(USBDrive, track, f)
    else:
        print ("Error(3) - Selection is invalid")
    if list is None:
        print ("Error(4) - Selection has no media")
    return list
#
# MediaPlayer function
#
def vlc_WhatsPlaying():
    pass
def vlc_SongStarted(event):
    print("Started")
    song = media_player.get_media_player().get_media().get_mrl() # return path of current playing media
    print(song)
    splittrack = song.split("/")
    track = splittrack[-2]
    print(track)
    return
    
def vlc_SongFinished(event):
    print("Finished")
    song = media_player.get_media_player().get_media().get_mrl() # return path of current playing media
    print(song)
    splittrack = song.split("/")
    track = splittrack[-2]
    #media_list.remove_index(0)
    #media_player.play_item_at_index(1)
    return
#
# Define keyboard actions
#
def on_press(key):
    global Action, player
    try:
        Sel_char = int(key.char)
    except:
        try:
            Sel_char = str(key.char)
            Sel_char = Sel_char.upper()
        except:
            Sel_char = None
    if Sel_char == "Z":
        return False
    elif Sel_char == "Y":
        print("Skip")
        media_player.next()
    elif type(Sel_char) == str:
        Action = Sel_char
    elif type(Sel_char) == int:
        Plist = None
        Action = Action + str(Sel_char)
        print("Action: " + Action)
        Plist = addplaylist(Action)
        if Plist is not None:
            if ";" in Plist:
                print(Plist)
                Plist = Plist.split(";")
                for p in Plist:
                    media_list.add_media(p)
            else:
                media_list.add_media(Plist)
            # find section in array and increase the count by one
            if not media_player.is_playing():
                media_player.play()
        else:
            print ("Error(4) - Selection has no media")
    else:
        pass
#
# Setting Up Media Player
#
# creating Instance class object
player = vlc.Instance('--no-xlib --quiet ') # no-xlib for linux and quiet don't complain
media_player = vlc.MediaListPlayer()  # creating a media player object
media_list = player.media_list_new()  # creating a new media list
media_player.set_media_list(media_list)  # setting media list to the media player
new = player.media_player_new()  # new media player instance
media_player.set_media_player(new)  # setting media player to it
media_events = new.event_manager()  # setting event handler
# setting up events
media_events.event_attach(vlc.EventType.MediaPlayerMediaChanged, vlc_SongStarted)
media_events.event_attach(vlc.EventType.MediaPlayerEndReached, vlc_SongFinished)

# Read keyboard input
#
print("Ready...")
with Listener(on_press=on_press) as listener:
    listener.join()
#
# Program is shutting down
#

print ("")
print ("Have a nice day!")
print ("")
sys.exit()

我正在尝试使用以下命令使用终端执行上述测试用例

from unittest import TestCase
from pyspark.sql import SparkSession
from pyspark.sql.functions import *

class UtilsTestCases(TestCase):

    @classmethod
    def setUpClass(cls):
        cls.spark = SparkSession \
                    .builder \
                    .master("local[3]") \
                    .appName("UnitTesting")\
                    .getOrCreate()

    def test_records(self):
        self.assertEqual(30,30,"Matched")

结果:

spark-submit test.py 

0 个答案:

没有答案
相关问题