试用前走查的修改:报错看得见、学生找得到作业、运行区和设计器的若干体验问题
- 运行区:编译错误、运行异常、控制台输出和保存的图片移到窗体下面,不再被实训台挤成 0 高;缩放和放大按钮移到桌面上方,不压窗体的关闭按钮;放大后也能停止程序;点停止后清掉窗体 - 运行异常:常见 .NET 异常配中文说明,显示出错的文件、行号和方法,点击跳到代码 - 运行中的下拉列表挂到页面最外层,能伸出窗体和分组框(小窗体也能选到 COM4、COM5) - 学生登录后进"我的作业";任务面板从工具栏下面开始,不挡导航;记住上次做的实验,从数据库页面返回、恢复数据时默认用它 - 代码页和设计页左栏都占 3/5,文件标签放不下时换行;实验选择框加宽;关闭粘性滚动 - 设计器:双击生成的事件方法带缩进;双击工具箱放进选中控件所在的容器并错开位置;新控件比容器宽时按比例缩小;无边框窗体不画标题栏 - 中文界面:代码编辑器(查找替换等)、属性窗口的颜色选项 - SQL:DATEADD、DATEDIFF、DATEPART 的日期单位(day、hour)解析成 IdentifierLiteral 时报"不支持",补上 - 项目 8 的预置环境数据改成建库那天之前的 7 天;p6-t3 评分项改为"按日期查询环境数据" - 没有 AI 建议时不显示"全部采纳 AI 建议"和相关说明;导出 CSV 只给纯数字的文字加制表符 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
da623fa648
commit
f6024dc113
30 files changed
+537
-255
No files matched your search
@@ -806,3 +806,44 @@ test.skipIf(config.sandbox === 'none')(
|
||||
},
|
||||
30000,
|
||||
)
|
||||
|
||||
test('运行时异常:常见的 .NET 异常配中文说明,带出错的文件、行号和方法', async () => {
|
||||
const { runner } = await runMain(
|
||||
'exception',
|
||||
`
|
||||
Console.WriteLine("start");
|
||||
int n = int.Parse("abc");`,
|
||||
)
|
||||
const error = await runner.next('exception')
|
||||
expect(error.message).toStartWith('文字转换成数字或日期时格式不对')
|
||||
expect(error.message).toContain('System.FormatException')
|
||||
expect(error).toMatchObject({ file: 'Program.cs', line: 11 })
|
||||
expect(error.detail).toBe('出错位置:Program.cs 第 11 行(Main 方法)')
|
||||
}, 30000)
|
||||
|
||||
test('数据库:DATEADD、DATEDIFF、DATEPART 的日期单位写成关键字(day、hour)', async () => {
|
||||
const dbDir = resolve(ROOT, '.runs', 'test-dateadd-db')
|
||||
await rm(dbDir, { recursive: true, force: true })
|
||||
await mkdir(dbDir, { recursive: true })
|
||||
const { runner } = await runMain(
|
||||
'dateadd',
|
||||
`
|
||||
var master = new SqlConnection("Data Source=.;User ID=sa");
|
||||
master.Open();
|
||||
new SqlCommand("CREATE DATABASE T", master).ExecuteNonQuery();
|
||||
var conn = new SqlConnection("Data Source=.;Initial Catalog=T");
|
||||
conn.Open();
|
||||
foreach (var sql in new[] {
|
||||
"SELECT DATEADD(hour, 8, DATEADD(day, -7, '2024-01-16'))",
|
||||
"SELECT DATEDIFF(day, '2024-01-01 23:00', '2024-01-02 01:00')",
|
||||
"SELECT DATEPART(hh, '2024-01-16 09:05:03')",
|
||||
})
|
||||
Console.WriteLine("result=" + new SqlCommand(sql, conn).ExecuteScalar());`,
|
||||
'using System.Data.SqlClient;',
|
||||
dbDir,
|
||||
)
|
||||
await runner.finished()
|
||||
const output = runner.messages.flatMap((m) => (m.type === 'console' ? [m.text] : [])).join('')
|
||||
expect(runner.messages.filter((m) => m.type === 'exception')).toEqual([])
|
||||
expect(output).toBe('result=2024/1/9 8:00:00\nresult=1\nresult=9\n')
|
||||
}, 30000)
|
||||
Reference in new issue
Block a user