package csv import ( "context" "joybuywork/internal/plugins/export" "fmt" "path/filepath" "runtime" "testing" ) func getData() (export.HeaderField, []export.RowData) { header := export.HeaderField{ { Field: "name", Title: "姓名", }, { Field: "age", Title: "年龄", }, { Field: "like", Title: "喜欢", }, } var data []export.RowData for i := 0; i < 1000; i++ { row := export.RowData{ "name": fmt.Sprintf("学生%d", i), "age": 15, "like": fmt.Sprintf("不知道%d", i), } data = append(data, row) } return header, data } func TestExportCsv(t *testing.T) { header, data := getData() err := NewExport(context.Background(), header, int64(len(data))).ExportFile(data) t.Log(err) } func TestExportCsvTask(t *testing.T) { header, data := getData() ct, err := NewExport(context.Background(), header, int64(len(data))).UpgradeTask(export.UseFinishPart(200, func(spn, nfp float64) { t.Log(spn, nfp) })) if err != nil { t.Log(err) return } ct.GetHashMark() err = export.Done(ct) if err != nil { t.Log(err) return } ct.AppendData(data) reply := <-ct.GetReply() if reply.Error != nil { t.Log(err) return } t.Log(reply.Filename, reply.FilePath, reply.Error) } func TestProceed(t *testing.T) { header, data := getData() _, filename, _, _ := runtime.Caller(0) current := filepath.Dir(filename) t.Log(current) return xt, err := NewExport(context.Background(), header, int64(len(data)), export.UseFile( "ept_c6diaucjmgh6bp15jc1g82921.csv", "G:\\Work\\go\\src\\app_service\\pkg\\components\\export\\csv/tmp/export/ept_c6diaucjmgh6bp15jc1g82921.csv", ), ).UpgradeTask(export.UserProceed(701, 0)) if err != nil { t.Log(err) return } err = export.Done(xt) if err != nil { t.Log(err) return } xt.AppendData(data) reply := <-xt.GetReply() if reply.Error != nil { t.Log(err) return } t.Log(reply.Filename, reply.FilePath, reply.Fr) }