Python-SVN-JUnit Grading Script (These notes were from a training session on the script conducted Winter term 2008-09. I haven't made any efforts to maintain the notes, but they may be useful. -- Curt) Using the Script ---------------------------------------------------------------- 1. ssh (using SecureCRT or similar) into sliderule.csse.rose-hulman.edu. ÊIt should take your Kerberos password. 2. Type: cd Private (The script stores the working copies of the student code in your Private AFS folder. This lets you access the code from a Windows box using Eclipse if necessary.) 3. Type: /class/csse/csse230/scripts/batch230.py (This is the command name for the csse230 version. The course instructor will have to configure a similar script for each course.) 4. Follow the prompts in the script based on what is necessary for the project you're grading. Here's a typical sequence: a. Select a project b. Checkout all c. Verify commit dates on all d. If it's a Java project: - Compile all, note any that don't compile - Run JUnit tests on all--careful, it reports OK(0 tests) if no tests were compiled e. If you need to open any files in Eclipse: - Mount your AFS directory on your machine that runs Eclipse - Use File --> Import to open each student project in Eclipse. Probably DON'T want to copy files into your workspace. f. After adding any comments, repeat steps 1-3, then use Update and Commit options to send all your comments back to their repositories. Configuring the Script ---------------------------------------------------------------- - Faculty can get a copy of the script and support files from the 230 repo: csse230/trunk/GradingScripts - Important Files: batch230.py* the actual script csse230-200920-repos.txt list of student repository names junit-4.5.jar JUnit libraries littleRepos.txt small repository listing for testing unitTestMap.txt maps from project names to unit test classes - Edit the script to change the file that lists the student repository names - AFS settings for script directory: - make a new directory on AFS - make a new AFS group for your staff, mine is clifton:csse230-staff - give your staff group access to the script directory - put the script files in the new directory - the following man pages are useful for all this: fs fs_setacl pts pts_membership pts_creategroup pts_adduser I don't have any of this memorized, so I look it up as I go. - here are the permissions on my scripts directory for 230: $ fs la /class/csse/csse230/scripts/ Access list for /class/csse/csse230/scripts/ is Normal rights: clifton:csse230-staff rlidwka csse_admin rlidwka csse_dept rlidwk system:administrators rlidwka system:anyuser rl anderson rlidwka clifton rlidwka Customizing the Script ---------------------------------------------------------------- The script is quite simple once you get the basic structure. So, adding or customizing features is easy. Features on my list to be added include: - Ability to choose between multiple lists of student repositories. (Will add this in the next couple of weeks to grade Colorize pair programming in 230.) - Ability to analyze commit times based on assignment due date. That is, enter the due date and script will list students who submitted early, on-time, excused late, and really late.