Fixed the list tests and fixed list to use msg for output
diff --git a/action/list.go b/action/list.go
index df8935d..8ff6c69 100644
--- a/action/list.go
+++ b/action/list.go
@@ -2,8 +2,6 @@
 
 import (
 	"encoding/json"
-	"fmt"
-	"os"
 	"path/filepath"
 	"sort"
 
@@ -87,13 +85,13 @@
 			}
 		}
 	case jsonFormat:
-		json.NewEncoder(os.Stdout).Encode(l)
+		json.NewEncoder(msg.Default.Stdout).Encode(l)
 	case jsonPrettyFormat:
 		b, err := json.MarshalIndent(l, "", "  ")
 		if err != nil {
 			msg.Die("could not unmarshal package list: %s", err)
 		}
-		fmt.Println(string(b))
+		msg.Puts(string(b))
 	default:
 		msg.Die("invalid output format: must be one of: json|json-pretty|text")
 	}
diff --git a/action/list_test.go b/action/list_test.go
index 1f2aed5..69e3eaf 100644
--- a/action/list_test.go
+++ b/action/list_test.go
@@ -1,9 +1,50 @@
 package action
 
-import "testing"
+import (
+	"bytes"
+	"encoding/json"
+	"testing"
+
+	"github.com/Masterminds/glide/msg"
+)
 
 func TestList(t *testing.T) {
-	if len(List("../", false).Installed) < 1 {
-		t.Error("Expected some packages to be found")
+	msg.Default.PanicOnDie = true
+	old := msg.Default.Stdout
+	defer func() {
+		msg.Default.Stdout = old
+	}()
+
+	var buf bytes.Buffer
+	msg.Default.Stdout = &buf
+	List("../", false, "text")
+	if buf.Len() < 5 {
+		t.Error("Expected some data to be found.")
+	}
+
+	var buf2 bytes.Buffer
+	msg.Default.Stdout = &buf2
+	List("../", false, "json")
+	j := buf2.Bytes()
+	var o PackageList
+	err := json.Unmarshal(j, &o)
+	if err != nil {
+		t.Errorf("Error unmarshaling json list: %s", err)
+	}
+	if len(o.Installed) == 0 {
+		t.Error("No packages found on json list")
+	}
+
+	var buf3 bytes.Buffer
+	msg.Default.Stdout = &buf3
+	List("../", false, "json-pretty")
+	j = buf3.Bytes()
+	var o2 PackageList
+	err = json.Unmarshal(j, &o2)
+	if err != nil {
+		t.Errorf("Error unmarshaling json-pretty list: %s", err)
+	}
+	if len(o2.Installed) == 0 {
+		t.Error("No packages found on json-pretty list")
 	}
 }