anchor.diff:      ;; pbw = pbx2 - x1
       ;; pbx2 = ((total/done) * (x2 - x1) / total) + x1
       (with-slots (total done) pane
  -      (let ((progress-bar-width (/ (* done (- x2 x1)) total)))
  -        (draw-rectangle* pane x1 y1
  -                         (+ progress-bar-width x1)
  -                         y2
  -                         :ink (foreground-color pane))))))
  +      (when (plusp done)
  +        (let ((progress-bar-width (/ (* done (- x2 x1)) total)))
  +          (draw-rectangle* pane x1 y1
  +                           (+ progress-bar-width x1)
  +                           y2
  +                           :ink (foreground-color pane)))))))
   
   (defun run-tests (button)
  -  (let ((progress-bar (find-pane-named *application-frame* 'progress-bar)))
  -    (loop for i from 5 to (total progress-bar) by 5
  +  (declare (ignore button))
  +  (let ((progress-bar (find-pane-named *application-frame* 'progress-bar))
  +        (output-pane (find-pane-named *application-frame* 'output-pane))
  +        (tests-to-run (tests-to-run *application-frame*)))
  +    ;; Initialize progress bar
  +    (setf (done progress-bar) 0
  +          (foreground-color progress-bar) +green+
  +          (total progress-bar) (length tests-to-run))
  +    ;; Clear output pane
  +    (redisplay-frame-pane *application-frame* output-pane :force-p t)
  +    
  +    (loop for test in tests-to-run
  +         for i from 1 to (length tests-to-run)
            do
            (progn
  +           (format output-pane "Running test: ~A ..." test)
  +           (if (fiveam::%run test)
  +               (progn
  +                 (format output-pane "Passed"))
  +               ;else
  +               (progn
  +                 (format output-pane "Failed")
  +                 (setf (foreground-color progress-bar) +red+)))
  +           (incf (done progress-bar))
  +           (terpri output-pane)
              (sleep 0.5)
  -           (setf (done progress-bar) i)))))
  +           ))))
   
   
   (defmethod (setf done) :after (new-value (pane progress-bar-pane))
     (handle-repaint pane (or (pane-viewport-region pane)
                                (sheet-region pane))))
   
  +(defmethod (setf foreground-color) :after (new-value (pane progress-bar-pane))
  +  (handle-repaint pane (or (pane-viewport-region pane)
  +                           (sheet-region pane))))
  +
   (defun selected-tests-changed (pane value)
  -    )
  +  (setf (tests-to-run *application-frame*) value))
   
   (defun selected-test-suites-changed (pane value)
     (let ((tests
  
positive.code:                :value-changed-callback #'selected-tests-changed
                 :name-key #'fiveam::name)
     (progress-bar (make-pane 'progress-bar-pane
                              :done 0))
     (run-tests-button :push-button
                       :label "Run"
                       :activate-callback #'run-tests)
  
negative.code:              (scrolling (:scroll-bar :vertical)
                 tests-pane))))
           (1/10 run-tests-button)
           (1/10
            (scrolling (:scroll-bar :vertical)
              output-pane))))))
  
  (defclass progress-bar-pane (application-pane)
    ((total :initarg :total
  